Orientação a Objetos com PHP

5,240 views

Published on

Published in: Technology
3 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total views
5,240
On SlideShare
0
From Embeds
0
Number of Embeds
42
Actions
Shares
0
Downloads
396
Comments
3
Likes
12
Embeds 0
No embeds

No notes for slide
  • - Usar PHP 5
    - Colocar OO em prática
  • - Usar PHP 5
    - Colocar OO em prática
  • - Usar PHP 5
    - Colocar OO em prática
  • - Usar PHP 5
    - Colocar OO em prática
  • - Esquecer Procedural
    - Como a mente funciona
    - Pensar OO
  • - Esquecer Procedural
    - Como a mente funciona
    - Pensar OO
  • - Esquecer Procedural
    - Como a mente funciona
    - Pensar OO
  • - Esquecer Procedural
    - Como a mente funciona
    - Pensar OO
  • - Esquecer Procedural
    - Como a mente funciona
    - Pensar OO
  • - Possuem informações
    - Executam
    - Explicar resolução de escopo ‘->’
  • - Explicar implementação da SPL
  • - Explicar implementação da SPL
  • - Atributo
    - Método
  • - Atributo
    - Método
  • - Atributo
    - Método
  • - Troca de informações entre classes
    - Poder da OO
  • - Era uma coisa e virou outra
    - Sobrecarga de método da classe pai
    - Diferente da sobrecarga em outras linguagens
  • - Classe final
    - Método final
  • - Classe final
    - Método final
  • - Classe final
    - Método final
  • - Classe final
    - Método final
  • - Classe final
    - Método final
  • - Métodos mágicos no PHP
    - 14 no PHP 5.3
  • - Métodos mágicos no PHP
    - 14 no PHP 5.3
  • - Métodos mágicos no PHP
    - 14 no PHP 5.3
  • - Métodos mágicos no PHP
    - 14 no PHP 5.3
  • - Métodos mágicos no PHP
    - 14 no PHP 5.3
  • -> __toString()
    -> Depois do PHP 5.2 funciona com tudo (não só echo)
  • - Métodos mágicos no PHP
    - 14 no PHP 5.3
  • - Excessões da SPL
  • - Referência a objetos
    - Typehint
    - instance of
    - Reflection
  • - Gang of Four: 23 padrões
    - MVC
    - Value Object
  • - Gang of Four: 23 padrões
    - MVC
    - Value Object
  • - Gang of Four: 23 padrões
    - MVC
    - Value Object
  • - Usam MVC, ORM, Active Record
  • 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 ?

    ×