OOP
PHP Advanced - 15 de Setembro de 2008
      Bruno Pedro <bpedro@tarpipe.com>
PHP Advanced




               Conteúdo
 • Excepções
 • Serialização
 • Three-tier model
 • Projecto
 • Resumo
OOP       ...
PHP Advanced




         Gestão de erros

  • error_log()
  • set_error_handler()
  • trigger_error()
  • debug_backtrace...
PHP Advanced




               error_log()
  • Captura um erro e envia os seus detalhes
      para um destino específico:
...
PHP Advanced




        set_error_handler()
  • Define qual a função que vai gerir todos os
      erros:
      • Útil quan...
PHP Advanced




               trigger_error()

  • Gera um erro de aplicação e passa o
      controlo à gestão de erros:...
PHP Advanced




        debug_backtrace()
 • Gera um array associativo com informação
      de backtrace:
      • Nomes d...
PHP Advanced




                  Exceptions
  • Geração e gestão de erros simplificada
  • Filosofia orientada a objectos
...
PHP Advanced




                  Exceptions
                               Exception
          # message : string
      ...
PHP Advanced




                    throw
  • Gera uma excepção que poderá ser
      interpretada mais tarde




OOP     ...
PHP Advanced




                      try
  • Tenta executar um pedaço de código
      ligando o tratamento de qualquer e...
PHP Advanced




                   catch()
  • Captura uma excepção gerada
      anteriormente e executa código arbitrári...
PHP Advanced




               Exemplo




OOP               13
PHP Advanced




                        Extensões

                             Exception




       SQLException       E...
PHP Advanced




               Extensões




OOP                15
PHP Advanced




               Extensões




OOP                16
PHP Advanced




        Captura de erros
  • Fazer com que o default error handler possa
      gerar excepções




OOP   ...
PHP Advanced




        Captura de erros
  • Mais tarde, é possível capturar os erros




OOP                    18
PHP Advanced




               Automatismos
  • É possível definir um default exception
      handler que será chamado sem...
PHP Advanced




               Automatismos




OOP                 20
PHP Advanced




               Serialização
  • Representação storable de um valor
   • literais, arrays e até mesmo obje...
PHP Advanced




               serialize()
 • Devolve uma representação serializada de
      um determinado valor




OOP...
PHP Advanced




               serialize()




OOP                 23
PHP Advanced




               unserialize()
 • Converte uma string serializada na
      respectiva variável PHP




OOP ...
PHP Advanced




Serialização de objectos

  • Serializa todos os atributos
  • Não grava ligações a bases de dados nem
  ...
PHP Advanced




Serialização de objectos




OOP            26
PHP Advanced




De-serialização de objectos


  • Cria um objecto PHP com todos os
      atributos que foram serializados...
PHP Advanced




De-serialização de objectos




OOP            28
PHP Advanced




                 __sleep()
 • É executado antes da serialização
 • Deve devolver um array com todos os
  ...
PHP Advanced




               __sleep()




OOP                30
PHP Advanced




               __wakeup()
 • É executado depois da de-serialização
 • Tem acesso a todos os atributos



...
PHP Advanced




               __wakeup()




OOP                32
PHP Advanced




               Aplicações
 • Utilização de um objecto como parâmetro
      de um Web Service
 • Recepção ...
PHP Advanced




         Modelo three-tier

  • Separação da aplicação em três camadas:
   • Apresentação
   • Lógica
   ...
PHP Advanced




         Modelo three-tier
  • Vantagens:
   • Modularização da aplicação
   • Fácil actualização de qual...
PHP Advanced




               Projecto

  • Objectivo
   • Criação de um leitor RSS Web
   • Aplicação multi-utilizador
...
PHP Advanced




               Discussão

  • Por onde começar?
  • O que se deve definir?
  • Como implementar as funcion...
PHP Advanced




               Resumo

  • Gestão de erros
  • Excepções e gestão automática de erros
  • Serialização e ...
PHP Summer School




                    Questões?




OOP em PHP              39
PHP Advanced




         Mais informação
  • O meu blog: http://unfoldingtheweb.com/

  • Manual de PHP: http://www.php.n...
Upcoming SlideShare
Loading in …5
×

OOP (in portuguese)

1,177 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,177
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for 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

×