Paradigmas de Linguagens de Programação: Conceitos de PHP
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Paradigmas de Linguagens de Programação: Conceitos de PHP

on

  • 12,358 views

Slides apresentando os conceitos da Linguagem de Programação PHP .

Slides apresentando os conceitos da Linguagem de Programação PHP .

Statistics

Views

Total Views
12,358
Views on SlideShare
12,260
Embed Views
98

Actions

Likes
3
Downloads
224
Comments
1

2 Embeds 98

http://www.slideshare.net 96
http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Paradigmas de Linguagens de Programação: Conceitos de PHP Presentation Transcript

  • 1. Paradigmas de Linguagens de Programação Linguagem - PHP André Nakamura Andrey Menezes Fábio Leal Jonathan Brilhante
  • 2. Agenda • Introdução • Valores e Tipos • Armazenamento • Associações • Abstrações • Unidades de Programa • Sistemas de Tipos • Sequenciadores • Concorrência • Conclusão
  • 3. Introdução Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 4. O que é? • "PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML". (php.net) • Linguagem de script paradigma híbrido (Orientado a Objetos + Imperativo). • Desenvolvimento Web. • Linguagem pertencente à 4ª geração de LP's ("Boom" da Web). Rasmus Lerdof Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 5. Sintaxe e Semântica • Sintaxe descrita pelo meta-modelo fornecido pelo projeto "PHP_UML", mantido pela PEAR. • Case sensitive para variáveis. • Case Insensitive para keywords da linguagem. • Semântica Operacional. • A Semântica operacional descreve como um programa válido é interpretado como uma sequência de passos computacionais. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 6. Processador da Linguagem • Interpretador da linguagem (PHP CGI). • Temos também a opção de ir executando um programa (interpretando comandos) através de um "shell", como na linguagem Python (PHP CLI). Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 7. IDE Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 8. Ambiente de Execução • PHP necessita de um Servidor Web para disponibilizar suas aplicações online. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 9. ...Um pouco mais sobre PHP... • "Enquanto .NET e Java brigam, fazendo muito barulho... PHP se mantém como a tecnologia número 1 da Web." (Felipe Ribeiro) • Linguagem é limitada? • Cloud Computing • SaaS • SOA • Web Services Quem Usa? Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 10. Vamos, então, aos conceitos! Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 11. Valores e Tipos Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 12. Valores & Tipos • Valores suportados por PHP: • Tipos suportados por PHP: • Arrays • Primitivos • Inteiros • Compostos • Reais • Objetos • Booleans • Strings • Abstrações de funções e procedimentos Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 13. Valores Abstração de Função Reais Array Objeto Abstrações de funções e procedimentos são valores de segunda classe em PHP. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 14. Tipos Primitivos • Os tipos primitivos em PHP são: • Integer: Representação binária na memória • Float: Difere de double apenas no tamanho do intervalo dos reais • Double: Números Reais. • Boolean: Dois valores possíveis, True ou False • Strings são tratados como arrays de caracteres! Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 15. Tipos Compostos • Produto cartesiano: Integer X String Valor do tipo Integer Valor do tipo String Representação utilizando um objeto com dois atributos distintos. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 16. Tipos Compostos • União disjunta: Pode ser simulada através de uma herança. A classe Peca "guarda um marcador" de PecaAbstrata, pois herda da mesma. • Quando tivermos uma instância de Peca, a mesma poderá ser tratada como Peca ou como PecaAbstrata. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 17. Tipos Compostos • Mapeamentos podem ocorrer através de Arrays ou de Funções. Mapeamento através de Mapeamento através de uma função um array bidimensional Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 18. Tipos Compostos • Conjunto Potência não ocorre em PHP. • Recursivo: Um exemplo é uma classe com atributo de seu próprio tipo. Atributo recursivo é setado para um valor de seu próprio tipo Representação utilizando uma classe com atributos de seu próprio tipo Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 19. Checagem de tipos • PHP é uma linguagem dinamicamente e fracamente tipada, e sua checagem de tipos também é dinâmica. Não é preciso declarar tipos de variáveis, o interpretador tentará realizar qualquer conversão entre tipos, ou como no caso do exemplo acima, recuperar o tipo de uma variável Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 20. Equivalência de Tipos • PHP adota a equivalência de nome na checagem de tipos. • A equivalência estrutural de tipos não é suportada Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 21. Princípio da completude de tipo • PHP viola o princípio da completude de tipo, pois uma construção de um arquivo permanente é limitada. Para lidarmos com arquivos persistentes é necessário que trabalhemos com o tipo "File". Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 22. Armazenamento Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 23. Variáveis e Atualização • Os valores armazenáveis em PHP são apenas os primitivos (Integer, Float, Double, Boolean). • Variáveis Temporárias: Todas as variáveis exceto as do tipo File. • Variáveis Persistentes: São do tipo "File" em PHP. Variável do tipo File Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 24. Variáveis e Atualização • Atualização Seletiva é suportada por PHP. Atualização Seletiva. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 25. Variáveis e Atualização • Atualização Total ocorre em PHP. Atualização total Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 26. Arrays • Em PHP arrays são do tipo Flexível. Não definimos nada sobre o array. O conjunto de índice não é fixo, funciona como uma "lista". Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 27. Semântica de Cópia x Semântica de Referência • Por default, semântica de cópia pra valores primitivos, os quais já foram apresentados. • Por default, semântica de Referência pra valores compostos, os quais já foram apresentados. • Podemos colocar o caractere & na definição de alguma variável e essa assumirá semântica de referência. Adotada a semântica de referência para $z. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 28. Variáveis Locais e Globais Variáveis Locais Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 29. Variáveis Locais e Globais • Variável Global. Variáveis Globais global, indicação do uso das variáveis globais. Resultado vai ser 3. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 30. Variáveis Heap • Em PHP temos o New como inicializador de uma variável Heap. • Podemos destruir uma variável com uso do unset(). Variável Heap • Apontadores não são suportados por PHP, variáveis Heap são acessadas através de sua referência. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 31. Tipos de Comandos • Skip • Atribuição • Chamada de Procedimento • Comando Sequencial • Comando Colateral • Comando Condicional • Comando Iterativo Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 32. Skip • Em PHP um Skip pode ser representado por um simples ";". O ponto e vírgula representa um skip. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 33. Atribuição • PHP não dá suporte a atribuições múltiplas nem simultâneas. • PHP só dá suporte a atribuições de um único modo: $var = valor; • É permitida a atribuição com o açúcar sintático "+=". Açúcar Sintático Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 34. Chamada de Procedimentos Chamada de Procedimento procedimento Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 35. Comando Sequencial e Colateral • Em PHP os comandos sequenciais são separados pelo " ; " e executados um após o outro. Comando 1 Comando 2 • Em PHP os comandos Colaterais não são suportados. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 36. Comando Condicional • Uso do comando condicional em PHP. O if vem seguido de comandos. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 37. Comando IterativoDefinimos o número de • Comando Iterativo Definido iterações. • Comando Iterativo Indefinido A iteração dura enquanto a condição for válida não se define a quantidade. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 38. Expressões com efeitos colaterais • Em PHP temos expressões com efeitos colaterais. Para retornar a expressão correspondente temos que atualizar a variável $linha como efeito colateral. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 39. Associações Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 40. Estrutura de blocos • Estrutura de blocos aninhados: Característica predominante nas linguagens mais recentes. EXEMPLO 1 2 3 Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 41. Escopo • Presença de escopo com associação estática em PHP. Variável de escopo Global Função que imprime a $var. Variável de escopo Local Impressão da variável. • O exemplo imprime o valor 2, pois na linha 6 há uma chamada ao escopo global de $var. Se comentássemos essa linha, a saída seria 3. • O corpo de um bloco é avaliado no ambiente que foi definido, e não no ambiente do bloco que o chama. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 42. Visibilidade • Visibilidade: Três tipos característicos de visibilidade (OO): Private, Protected e Public. Att. protegidos (herdáveis) Atributos públicos. (Remove encapsulamento) Atributos Privados da Classe Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 43. Visibilidade em blocos • Visibilidade: Se temos uma variável declarada em um escopo mais "interno", essa variável não estará visível a um bloco de escopo mais externo. $Peca só será visível das linhas 262 a 266. Se tentarmos acessar essa variável fora de seu escopo, PHP assume valor nulo para ela. (Tipagem) Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 44. Entidades Associáveis • Em PHP podemos produzir associações através de Constantes, variáveis, procedimentos, Funções e tipos. "Jogador" estará associado a uma classe, assim como "cor" e "tipo" a variáveis internas da classe. Associamos ainda "play" a um método da classe. • Entidades associáveis em PHP: Valores primitivos, valores compostos, abstrações de funções e procedimentos, variáveis, tipos... Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 45. Declarações • Declarações em PHP: Definições, Declaração de tipo, de variáveis, sequenciais e recursivas. Definição de constantes em PHP. Declaração de um novo tipo Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 46. Declarações • PHP não dá suporte a declarações colaterais. No entanto, suporta declarações sequenciais e recursivas. Declarações sequenciais. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 47. Declarações • Declarações Recursivas podem ser obtidas através da declaração de um Método Recursivo ou Objeto Recursivo. Procedimento recursivo Classe com atributo "recursivo" Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 48. Comando Bloco • Comandos Bloco são suportados por PHP. Declarações necessárias para Método que executará o executar o comando. comando (encapsulado). Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 49. Expressões Bloco • Expressões Bloco são suportadas por PHP. Declaração necessária para Expressão final avaliada. avaliar a expressão de retorno. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 50. Princípio da Qualificação • PHP não fere o princípio da qualificação, uma vez que podemos realizar qualquer computação, inclusive a simples declaração de uma variável, dentro de um bloco. • Podemos realizar qualquer computação dentro de um bloco. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 51. Abstrações Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 52. Abstração de Função • PHP suporta abstrações de funções. • Quando declarando, usamos da keyword "function" para especificar o corpo e da keyword "return" para especificar o retorno. Parâmetros Uso de uma abstração de função Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 53. Abstração de Procedimento • PHP suporta abstrações de procedimentos. • É dado de forma similar às abstrações de funções , declarando-se com o uso da keyword "function". A diferença excêncial deve-se ao fato que não deve haver "return". Uso de uma abstração de procedimento Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 54. Parâmetros • PHP dá suporte a funções de alta ordem. • Passagem de parâmetros por cópia ou referência. Para especificar o uso da referência , usamos "&". Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 55. Parâmetros • Para passagem de parâmetro por cópia, PHP assume a semântica de cópia valor. Output Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 56. Ordem de Avaliação • PHP utiliza Eager Evaluation como ordem de avaliação dos parâmetros nas chamadas de suas abstrações de funções/ procedimentos Alteramos manualmente o arquivo enquanto o programa está em "sleep". Independente da alteração ainda será impresso: " Relatório de PLP! " Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 57. Princípio da Abstração • PHP não viola o princípio da abstração , pois para qualquer trecho de código que realize uma computação , podemos encapsula-lo numa abstração de procedimento sem parâmetros. • Podemos encapsular qualquer construção sintática em abstrações Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 58. Princípio da Correspondência • PHP não viola o princípio da correspondência, uma vez que existe uma declaração/definição de variável correspondente a cada operação de passagem de parâmetro, seja ela por referência (Constante ou Variável) e por cópia/valor . Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 59. Unidades de Programa Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 60. Pacotes • Abstrações de Funções e procedimentos já foram detalhados na seção de Abstrações. • Em PHP não existe nenhuma keyword especifica para pacotes, porém a existência dos mesmos pode ser simulada. Importando Classes extenas Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 61. Tipos abstratos de dados (TAD's) • TAD's podem ser simulados através de Classes de PHP. • Exemplo: Fila. Exemplo de TAD por uma Fila. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 62. Objetos e Classes • Objetos e classes são peças fundamentais para o conceito de orientação a objetos. Construtor Classe Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 63. Pacotes • Uma curiosidade em PHP é o conceito de namespaces. criando um namespace Utilizando namespace Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 64. Unidades Genéricas • PHP não dá suporte a unidades genéricas. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 65. Sistemas de Tipos Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 66. Monomorfismo & Chegagem de tipos • PHP não é uma linguagem monomórfica. Não há declaração de tipos. • Checagem de tipos dinâmica, realizada em tempo de execução. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 67. Sobrecarga • PHP não dá suporte à sobrecarga dependente de contexto. • PHP não dá suporte à sobrecarga independente de contexto. Não há declaração de parâmetros. (Impossível realizar sobrecarga independente de contexto). Assim como a dependente de contexto p/ o tipo de retorno. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 68. Sobrecarga • No entanto, pode haver sobrecarga de alguns métodos Built-in. Método (Built-in) que pode ser sobrecarregado de acordo com os seus parâmetros. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 69. Sobrescrita • PHP dá suporte à sobrescrita. Sobrescrita de método Built-in. Método da classe mãe. Método Sobrescrito. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 70. Polimorfismo • PHP dá suporte ao polimorfismo paramétrico e por inclusão. Método Polimórfico. Exemplo de Polimorfismo Paramétrico. • O polimorfismo por inclusão ocorre de maneira semelhante. Os métodos que são válidos para um supertipo também são válidos para seus subtipos. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 71. Coerção • Pelo fato de ser uma linguagem fracamente tipada, a coerção é uma das características marcantes de PHP. PHP converterá sem necessidade de "cast" explícito. • Existe, também, a função settype() para evitar a coerção. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 72. Subtipos & Herança • PHP dá suporte a subtipos e Herança. Classes e Interfaces definem tipos. Definem novos tipos. Def. de tipo por Interface. • Herança simples e implementação de interfaces múltipla. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 73. Sequenciadores Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 74. Desvios Incondicionais • PHP suporta desvios incondicionais : Apartir da versão 5.3 . Usando a sintaxe "goto" semelhante a outras linguagens. Designação do Salto para Especificação do o ponto "desvio". ponto "Desvio" • Só podemos fazer desvios incondicionais dentro do escopo da abstração de função/procedimento. (Não podemos ir para pontos mais externos do programa). Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 75. Escapes • PHP dá suporte a escapes através de "break" e "return". Existe também a função exit(), que finaliza o script. • "break" : Escape usado para • quebrar o condicional switch • e a execução de laços. • "return" : Escape usado para • saida do escopo de métodos. Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 76. Exceções PHP dá suporte a exceções da seguinte forma: • Lançar Exceções : " Throw " "Lançando uma nova exceção que é um Objeto da classe PecaException " Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 77. Exceções • Tratamento de Exceções : "Try/Catch" "Try : Exceuta um bloco esperando uma exceção" "Catch: Intercepta a exceção especificada e trata " • Criação de Exceções : "extends Exception" "Para criar um novo tipo de exceção basta criar uma nova classe que herde de Exception" Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 78. Concorrência Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 79. Concorrência • PHP não suporta concorrência nativamente. Foi desenvolvida uma biblioteca, PCNTL (disponível apenas em ambientes Unix), que simula algumas features de concorrência. Algumass de suas funções são: Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 80. Conclusão Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 81. Campo Minado http://gmf.ufcg.edu.br/~fabiosl/CampoMinado/Menu.php Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 82. Damas http://gmf.ufcg.edu.br/~fabiosl/CampoMinado/Menu.php Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 83. Links Interessantes • http://php.net/index.php - Site Oficial • http://pear.php.net - Site de Módulos para PHP • http://pear.php.net/package/php_uml - Metamodelo • http://www.zend.com/en - Zend Studio IDE • http://www.apache.org - Apache Server • http://www.xoops.org - XOOPS Server • http://php-pb.net - Lista de discussão de PHP da PB Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão
  • 84. Dúvidas? Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos Sequenciadores Concorrência Conclusão