paradigmas de linguagens de programação: conceitos de php

Post on 23-Jun-2015

10.600 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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?

top related