O slideshow foi denunciado.

Orientação a Objetos com PHP

5.309 visualizações

Publicada em

Publicada em: Tecnologia

Orientação a Objetos com PHP

  1. 1. Orientação a Objetos em PHP augusto@phpsp.org.br @augustohp
  2. 2. AUGUSTO PASCUTTI •4 anos de experiência • ZCE • Fundador/coordenador PHPSP • Habari, CakePHP
  3. 3. OBJETIVOS
  4. 4. ORIENTAR
  5. 5. PHP 5
  6. 6. USAR
  7. 7. ORIENTANDO-SE
  8. 8. PROGRAMA PROCEDURAL ?
  9. 9. ESQUEÇA !
  10. 10. PENSE DIFERENTE
  11. 11. PENSE OO
  12. 12. CLASSES
  13. 13. BASE DA OO
  14. 14. MOLDES
  15. 15. INSTRUÇÕES
  16. 16. SEM VONTADE PRÓPRIA
  17. 17. CLASSES
  18. 18. CLASSES
  19. 19. CLASSES
  20. 20. CLASSES
  21. 21. • Uma classe por arquivo • Padrões de nomenclatura • Padrão_Zend_ou_Pear CLASSES • PadrãoCamelCase • PaDrÃoMiGuXo
  22. 22. OBJETOS
  23. 23. FILHOS DAS CLASSES
  24. 24. INFORMAÇÕES
  25. 25. INDEPENDENTES
  26. 26. EXECUTORES
  27. 27. EXECUTAM
  28. 28. ATRIBUTOS
  29. 29. DECLARADOS NA CLASSE
  30. 30. USADOS NOS OBJETOS
  31. 31. PROPRIEDADES
  32. 32. INFORMAÇÕES
  33. 33. VARIÁVEIS
  34. 34. 4
  35. 35. VARIÁVEIS
  36. 36. 5
  37. 37. VARIÁVEIS
  38. 38. MÉTODOS
  39. 39. DECLARADOS NA CLASSE
  40. 40. USADOS PELOS OBJETOS
  41. 41. FUNÇÕES
  42. 42. FAZEM COISAS
  43. 43. DÃO E RECEBEM
  44. 44. 4
  45. 45. DÃO E RECEBEM
  46. 46. 5
  47. 47. DÃO E RECEBEM
  48. 48. AUTOLOAD
  49. 49. AUTOLOAD •Executado na instanciação •Executado somente para classes não declaradas •Nativo do PHP •Duas implementações •__autoload •SPL •Sem includes/requires •Melhora consumo de memória
  50. 50. AUTOLOAD
  51. 51. AUTOLOAD
  52. 52. MEMBROS DA CLASSE
  53. 53. CONSTANTES
  54. 54. CONSTANTES
  55. 55. ESTÁTICOS
  56. 56. ESTÁTICOS
  57. 57. ESTÁTICOS
  58. 58. MENSAGENS
  59. 59. PODER DA OO
  60. 60. TROCA DE INFORMAÇÕES
  61. 61. TROCA DE INFORMAÇÕES
  62. 62. HERANÇA
  63. 63. CLASSE PAI
  64. 64. CLASSE FILHA
  65. 65. VISIBILIDADE
  66. 66. PUBLIC
  67. 67. PROTECTED
  68. 68. PRIVATE
  69. 69. POLIMORFISMO
  70. 70. ERA UMA COISA
  71. 71. AGORA É OUTRA
  72. 72. SOBRECARGA
  73. 73. NA VERDADE: SOBRESCRITA
  74. 74. NA VERDADE: SOBRESCRITA
  75. 75. FINAL
  76. 76. IMPEDE O POLIMORFISMO
  77. 77. USADO EM CLASSES ...
  78. 78. E MÉTODOS
  79. 79. E MÉTODOS
  80. 80. ABSTRATO
  81. 81. NÃO PODE SER INSTANCIADA
  82. 82. USADA COMO PAI
  83. 83. USADA COMO PAI
  84. 84. USADA COMO PAI
  85. 85. MÁGICA
  86. 86. MÉTODOS MÁGICOS
  87. 87. EXECUTADOS PELO PHP
  88. 88. 14 EXISTENTES NO PHP 5.3
  89. 89. SEMPRE COMEÇAM COM “_ _”
  90. 90. CONSTRUINDO
  91. 91. __CONSTRUCT •Executado na instanciação do objeto •Não pode retornar nada •Pode sofrer sobrecarga •Pode receber argumentos
  92. 92. __CONSTRUCT
  93. 93. DESTRUINDO
  94. 94. •Executado quando objeto sai da memória •Final do script •unset() do objeto •Pode ser útil em •Banco de dados •Logs •etc ... __DESTRUCT
  95. 95. __DESTRUCT
  96. 96. MOSTRANDO
  97. 97. __TOSTRING •Chamado quando objeto é usado como String •O método DEVE retornar uma String •Útil para objetos que devem retornar algo visual •Paginador, Botão •Até a versão 5.2 funcionava só com `print` e `echo` •> 5.2 funciona em qualquer contexto de string •TypeCast •sprintf()
  98. 98. __TOSTRING
  99. 99. OUTROS MÉTODOS MÁGICOS •__call •__get •__set •__get •__isset •__clone •http://php.net/manual/en/language.oop5.magic.php
  100. 100. INTERFACES
  101. 101. “CLASSES” GENÉRICAS
  102. 102. DEFINEM COMPORTAMENTOS
  103. 103. TIPOS DE DADOS
  104. 104. TIPOS DE DADOS
  105. 105. •Mais genéricos que Classes Abstratas •Uma classe pode implementar várias Interfaces TIPOS DE DADOS
  106. 106. EXCEPTIONS
  107. 107. TRABALHANDO
  108. 108. OBJETOS E REFERÊNCIAS
  109. 109. OBJETOS E REFERÊNCIAS
  110. 110. OBJETOS E REFERÊNCIAS
  111. 111. OBJETOS E REFERÊNCIAS
  112. 112. TYPE HINT
  113. 113. •Forçam um tipo a um argumento •Só podem ser usados como tipo: •Array •Classes TYPE HINT
  114. 114. TYPE HINT
  115. 115. TYPE HINT
  116. 116. INSTANCE OF
  117. 117. •Checa se um objeto é uma determinada instância •Retorna boolean •Um objeto pode ser checado contra •Classe •Classe Abstrata •Interface INSTANCE OF
  118. 118. INSTANCE OF
  119. 119. BANCO DE DADOS
  120. 120. ABSTRAIA
  121. 121. •Melhora segurança •Centraliza execuções •Melhor manutenção •Evita dor de cabeças ABSTRAIA
  122. 122. NÃO REINVENTE A RODA
  123. 123. USE A PDO
  124. 124. •O que ela é: •Abstração de Acesso para banco de dados •Nativo do PHP 5.1 •Aprenda uma sintaxe de conexão •Muito/Extremamente TESTADA pra caramba •Mais leve do que qualquer outra USE A PDO
  125. 125. •O que ela NÃO é: •Não abstrai suas queries •Não evita instalação de drivers dos bancos •Não vai resolver seus problemas •Nem de segurança •Nem de performance USE A PDO
  126. 126. USANDO A PDO
  127. 127. USANDO A PDO
  128. 128. •Agilizam a execução de queries repetidas •Implementam um pouco de segurança •Simplificam o uso de queries repetidas •Simplificam Fetch de resultados PDO STATEMENTS
  129. 129. PDO STATEMENTS
  130. 130. PARÂMETROS
  131. 131. RETORNO ID INSERIDO
  132. 132. DESIGN PATTERNS
  133. 133. •Solução comum para problemas comuns •Independem de linguagem •Vocuabulário comum •Primeiros DP: Gang of Four DESIGN PATTERNS
  134. 134. •Singleton •Factory •Strategy •Data Access Object •Value Objects •MVC DESIGN PATTERNS
  135. 135. FRAMEWORKS
  136. 136. Augusto Pascutti augusto@phpsp.org.br @augustohp http://www.slideshare.net/augustopascutti PERGUNTAS ?

×