4. PHP Advanced
error_log()
• Captura um erro e envia os seus detalhes
para um destino específico:
• logs do servidor Web
• Endereço de e-mail
• Debugger remoto
• Um ficheiro arbitrário
OOP 4
5. PHP Advanced
set_error_handler()
• Define qual a função que vai gerir todos os
erros:
• Útil quando se pretende executar código
antes de um erro ser apresentado
• Errors críticos e de interpretação não
são capturados (E_PARSE, E_ERROR,
E_CORE)
OOP 5
6. PHP Advanced
trigger_error()
• Gera um erro de aplicação e passa o
controlo à gestão de erros:
• É possível definir uma mensagem de erro
específica
• Só é possível gerar erros do tipo E_USER
OOP 6
7. PHP Advanced
debug_backtrace()
• Gera um array associativo com informação
de backtrace:
• Nomes de funções
• Números de linhas
• Nomes de ficheiros
• Nomes de classes
• ...
OOP 7
8. PHP Advanced
Exceptions
• Geração e gestão de erros simplificada
• Filosofia orientada a objectos
• Extensível
• Simples de implementar
• Afasta a gestão de erros da lógica da
aplicação
OOP 8
17. PHP Advanced
Captura de erros
• Fazer com que o default error handler possa
gerar excepções
OOP 17
18. PHP Advanced
Captura de erros
• Mais tarde, é possível capturar os erros
OOP 18
19. PHP Advanced
Automatismos
• É possível definir um default exception
handler que será chamado sempre que for
gerada uma excepção
• A execução será terminada sempre que
uma excepção for gerada fora de um bloco
try
OOP 19
21. PHP Advanced
Serialização
• Representação storable de um valor
• literais, arrays e até mesmo objectos
• os valores serializados são na verdade
strings
• Permite gravar o conteúdo de uma variável
para posterior utilização
• Bastante usado em gestão de sessões
OOP 21
22. PHP Advanced
serialize()
• Devolve uma representação serializada de
um determinado valor
OOP 22
24. PHP Advanced
unserialize()
• Converte uma string serializada na
respectiva variável PHP
OOP 24
25. PHP Advanced
Serialização de objectos
• Serializa todos os atributos
• Não grava ligações a bases de dados nem
ficheiros abertos
• Não executa tarefas de limpeza de objectos
• Não executa o destructor do objecto
OOP 25
27. PHP Advanced
De-serialização de objectos
• Cria um objecto PHP com todos os
atributos que foram serializados
• Não executa o constructor do objecto
OOP 27
33. PHP Advanced
Aplicações
• Utilização de um objecto como parâmetro
de um Web Service
• Recepção de um objecto como parâmetro
POST
• ...
OOP 33
34. PHP Advanced
Modelo three-tier
• Separação da aplicação em três camadas:
• Apresentação
• Lógica
• Acesso aos dados
OOP 34
35. PHP Advanced
Modelo three-tier
• Vantagens:
• Modularização da aplicação
• Fácil actualização de qualquer uma das
camadas
• Divisão do trabalho por equipas
diferentes
• Divisão de responsabilidades
OOP 35
36. PHP Advanced
Projecto
• Objectivo
• Criação de um leitor RSS Web
• Aplicação multi-utilizador
• Permite a gestão dos feeds RSS
• Grava estado dos itens já lidos
OOP 36
37. PHP Advanced
Discussão
• Por onde começar?
• O que se deve definir?
• Como implementar as funcionalidades?
• Existe código já feito que ajude?
OOP 37
38. PHP Advanced
Resumo
• Gestão de erros
• Excepções e gestão automática de erros
• Serialização e de-serialização
• Modelo three-tier
• Discussão sobre o projecto
OOP 38