paradigmas de linguagens de programação: conceitos de php
DESCRIPTION
Slides apresentando os conceitos da Linguagem de Programação PHP .TRANSCRIPT
Paradigmas de Linguagens de Programação
Linguagem - PHP
André NakamuraAndrey Menezes
Fábio LealJonathan Brilhante
Agenda
•••••••••• Introdução
Valores e TiposArmazenamentoAssociaçõesAbstraçõesUnidades de ProgramaSistemas de TiposSequenciadoresConcorrênciaConclusão
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Introdução
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
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
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
IDE
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
...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 ComputingSaaSSOAWeb Services
Quem Usa?
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Vamos, então, aos conceitos!
Valores e Tipos
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Valores & Tipos
•••••••
• Valores suportados por PHP: ArraysInteirosReaisObjetosBooleansStringsAbstraçõ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
••
• Tipos suportados por PHP:PrimitivosCompostos
Valores
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Abstração de Função
ReaisObjetoArray
Abstrações de funções e procedimentos são valores de segunda classe em PHP.
Tipos Primitivos
•
••
••
• Os tipos primitivos em PHP são:Integer: Representação binária na memóriaFloat: Difere de double apenas no tamanho do intervalo dos reaisDouble: 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
Tipos Compostos• Produto cartesiano: Integer X String
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Valor do tipo Integer
Valor do tipo String
Representação utilizando um objeto com dois atributos distintos.
Tipos Compostos
•
• União disjunta: Pode ser simulada através de uma herança.
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
A classe Peca "guarda um
marcador" de PecaAbstrata, pois herda da mesma.
Tipos Compostos• Mapeamentos podem ocorrer através de Arrays ou de
Funções.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Mapeamento através de um array bidimensional
Mapeamento através de uma função
Tipos Compostos
•
• Conjunto Potência não ocorre em PHP.
Recursivo: Um exemplo é uma classe com atributo 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
Atributo recursivo é setado para um valor de seu próprio tipo
Representação utilizando uma classe com atributos de seu próprio tipo
Checagem de tipos• PHP é uma linguagem dinamicamente e fracamente tipada,
e sua checagem de tipos também é dinâmica.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
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
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
Armazenamento
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Variáveis e Atualização
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusã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
Variáveis e Atualização
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• Atualização Seletiva é suportada por PHP.
Atualização Seletiva.
Variáveis e Atualização
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• Atualização Total ocorre em PHP.
Atualização total
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
Semântica de Cópia x Semântica de Referência
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
•
•
• 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.
Variáveis Locais e Globais
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Variáveis Locais
Variáveis Locais e Globais• Variável Global.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
Variáveis Heap
•
•
• Em PHP temos o New como inicializador de uma variável Heap.
Podemos destruir uma variável com uso do unset().
Apontadores não são suportados por PHP, variáveis Heap são acessadas através de sua referência.
Variável Heap
Tipos de Comandos
••••••• Skip
AtribuiçãoChamada de ProcedimentoComando SequencialComando ColateralComando CondicionalComando Iterativo
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
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çúcarSintático
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Chamada de ProcedimentosProcedimentoChamada de
procedimento
Comando Sequencial e Colateral
•
• Em PHP os comandos sequenciais são separados pelo " ; " e executados um após o outro.
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
Comando 1
Comando 2
Comando Condicional
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• Uso do comando condicional em PHP.
O if vem seguido de comandos.
Comando Iterativo
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• Comando Iterativo Definido Definimos o número de iterações.
• Comando Iterativo Indefinido A iteração dura
enquanto a condição for válida
não se define a quantidade.
Expressões com efeitos colaterais
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• 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
Associações
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
Escopo
•
•
• Presença de escopo com associação estática em PHP.
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.
Variável de escopo Global
Função que imprime a $var.Variável de escopo LocalImpressão da variável.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Visibilidade • Visibilidade: Três tipos característicos de visibilidade (OO):
Private, Protected e Public.
Atributos Privados da Classe
Att. protegidos (herdáveis) Atributos públicos. (Remove encapsulamento)
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
Entidades Associáveis
•
• Em PHP podemos produzir associações através de Constantes, variáveis, procedimentos, Funções e tipos.
Entidades associáveis em PHP: Valores primitivos, valores compostos, abstrações de funções e procedimentos, variáveis, 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.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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çãode um novo tipo
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
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
Comando Bloco• Comandos Bloco são suportados por PHP.
Declarações necessárias paraexecutar o comando.
Método que executará o comando (encapsulado).
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Expressões Bloco• Expressões Bloco são suportadas por PHP.
Declaração necessária paraavaliar a expressão de
retorno.
Expressão final avaliada.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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.
Abstrações
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
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
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
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
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
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
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
Unidades de Programa
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Pacotes
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
•
• 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
Tipos abstratos de dados (TAD's)
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
•• TAD's podem ser simulados através de Classes de PHP.
Exemplo: Fila. Exemplo de TAD por uma Fila.
Objetos e Classes
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• Objetos e classes são peças fundamentais para o conceito de orientação a objetos.
Classe
Construtor
Pacotes
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• Uma curiosidade em PHP é o conceito de namespaces.
criando um namespace
Utilizando namespace
Unidades Genéricas
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
• 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
Sistemas de Tipos
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Monomorfismo & Chegagem de tipos
•
• PHP não é uma linguagem monomórfica.
Checagem de tipos dinâmica, realizada em tempo de execução.
Não há declaração de tipos.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
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
Sobrescrita• PHP dá suporte à sobrescrita.
Sobrescrita de método Built-in.
Método Sobrescrito.
Método da classe mãe.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Polimorfismo
•
• PHP dá suporte ao polimorfismo paramétrico e por inclusão.
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.
Exemplo de Polimorfismo Paramétrico.
Método Polimórfico.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Coerção
•
• Pelo fato de ser uma linguagem fracamente tipada, a coerção é uma das características marcantes de PHP.
Existe, também, a função settype() para evitar a coerção.
PHP converterá sem necessidade de "cast" explícito.
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Subtipos & Herança
•
• PHP dá suporte a subtipos e Herança. Classes e Interfaces definem tipos.
Herança simples e implementação de interfaces múltipla.
Def. de tipo por Interface.
Definem novos tipos.
Sequenciadores
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Desvios Incondicionais
•
• PHP suporta desvios incondicionais : Apartir da versão 5.3 . Usando a sintaxe "goto" semelhante a outras linguagens.
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
Especificação do ponto "Desvio"
Designação do Salto parao ponto "desvio".
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
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
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
Concorrência
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
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
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Conclusão
Introdução Valores e Tipos Armazenamento Associações Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
Campo Minadohttp://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
Damashttp://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
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
Dúvidas?