OOP (in portuguese)

1.179 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.179
No SlideShare
0
A partir de incorporações
0
Número de incorporações
14
Ações
Compartilhamentos
0
Downloads
31
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

OOP (in portuguese)

  1. 1. OOP PHP Advanced - 15 de Setembro de 2008 Bruno Pedro <bpedro@tarpipe.com>
  2. 2. PHP Advanced Conteúdo • Excepções • Serialização • Three-tier model • Projecto • Resumo OOP 2
  3. 3. PHP Advanced Gestão de erros • error_log() • set_error_handler() • trigger_error() • debug_backtrace() OOP 3
  4. 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. 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. 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. 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. 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
  9. 9. PHP Advanced Exceptions Exception # message : string # code : int = 0 # file : string # line : int + __construct(message : string = null, code : int = 0) ~ getMessage() : string ~ getCode() : int ~ getFile() : string ~ getLine() : int ~ getTrace() : array ~ getTraceAsString() : string + __toString() : string OOP 9
  10. 10. PHP Advanced throw • Gera uma excepção que poderá ser interpretada mais tarde OOP 10
  11. 11. PHP Advanced try • Tenta executar um pedaço de código ligando o tratamento de qualquer excepção gerada OOP 11
  12. 12. PHP Advanced catch() • Captura uma excepção gerada anteriormente e executa código arbitrário OOP 12
  13. 13. PHP Advanced Exemplo OOP 13
  14. 14. PHP Advanced Extensões Exception SQLException EMailException LogException + __construct() + __construct() + __construct() ~ save() ~ send() ~ save() OOP 14
  15. 15. PHP Advanced Extensões OOP 15
  16. 16. PHP Advanced Extensões OOP 16
  17. 17. PHP Advanced Captura de erros • Fazer com que o default error handler possa gerar excepções OOP 17
  18. 18. PHP Advanced Captura de erros • Mais tarde, é possível capturar os erros OOP 18
  19. 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
  20. 20. PHP Advanced Automatismos OOP 20
  21. 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. 22. PHP Advanced serialize() • Devolve uma representação serializada de um determinado valor OOP 22
  23. 23. PHP Advanced serialize() OOP 23
  24. 24. PHP Advanced unserialize() • Converte uma string serializada na respectiva variável PHP OOP 24
  25. 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
  26. 26. PHP Advanced Serialização de objectos OOP 26
  27. 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
  28. 28. PHP Advanced De-serialização de objectos OOP 28
  29. 29. PHP Advanced __sleep() • É executado antes da serialização • Deve devolver um array com todos os atributos a serem serializados OOP 29
  30. 30. PHP Advanced __sleep() OOP 30
  31. 31. PHP Advanced __wakeup() • É executado depois da de-serialização • Tem acesso a todos os atributos OOP 31
  32. 32. PHP Advanced __wakeup() OOP 32
  33. 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. 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. 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. 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. 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. 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
  39. 39. PHP Summer School Questões? OOP em PHP 39
  40. 40. PHP Advanced Mais informação • O meu blog: http://unfoldingtheweb.com/ • Manual de PHP: http://www.php.net/ • Three-tier architecture: http://tinyurl.com/threetier OOP 40

×