Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHP Maroto

PHP Maroto

63c59020e0d7efaef816653c853ecc05?s=128

Alexandre Gaigalas

November 06, 2011
Tweet

More Decks by Alexandre Gaigalas

Other Decks in Technology

Transcript

  1. 5 de Novembro PHP'n Rio 2011 1 Alexandre Gomes Gaigalas

    http://about.me/alganet
  2. 5 de Novembro PHP'n Rio 2011 2 Hoje você vai

    ver... • Como são alguns dos paradigmas de programação. • PHP funcionando em múltiplos paradigmas. • Recursos MUITO FODA da linguagem.
  3. 5 de Novembro PHP'n Rio 2011 3 PHP Maroto

  4. 5 de Novembro PHP'n Rio 2011 4 PHP Imperativo, Procedural

  5. 5 de Novembro PHP'n Rio 2011 5 PHP Imperativo, Procedural

    Ordens para o interpretador
  6. 5 de Novembro PHP'n Rio 2011 6 PHP Imperativo, Procedural

    Ordens para o interpretador Reuso de subrotinas
  7. 5 de Novembro PHP'n Rio 2011 7 PHP Orientado a

    Objetos
  8. 5 de Novembro PHP'n Rio 2011 8 PHP Orientado a

    Objetos Agrupamento de responsabilidades
  9. 5 de Novembro PHP'n Rio 2011 9 PHP Reflexivo

  10. 5 de Novembro PHP'n Rio 2011 10 PHP Reflexivo Sabe

    sobre si mesmo em tempo de execução
  11. 5 de Novembro PHP'n Rio 2011 11 PHP Reflexivo Sabe

    sobre si mesmo em tempo de execução É daqui que vem a mágica do PHP!
  12. 5 de Novembro PHP'n Rio 2011 12 PHP Funcional

  13. 5 de Novembro PHP'n Rio 2011 13 PHP Funcional Funções

    como recurso de primeira-classe
  14. 5 de Novembro PHP'n Rio 2011 14 PHP Funcional Funções

    como recurso de primeira-classe Closures!
  15. 5 de Novembro PHP'n Rio 2011 15 PHP Multi-Paradigma

  16. 5 de Novembro PHP'n Rio 2011 16 PHP Multi-Paradigma Pelo

    menos 4 paradigmas!
  17. 5 de Novembro PHP'n Rio 2011 17 PHP Multi-Paradigma Pelo

    menos 4 paradigmas! Por que só focar em OOP? :(
  18. 5 de Novembro PHP'n Rio 2011 18 Assembly (apenas pra

    curiosidade da galera)
  19. 5 de Novembro PHP'n Rio 2011 19 A maioria dos

    programadores nunca viu Assembly code na vida.
  20. 5 de Novembro PHP'n Rio 2011 20 A maioria dos

    programadores nunca viu Assembly code na vida. Por mais que insistam que tenham visto, não acredite!
  21. 5 de Novembro PHP'n Rio 2011 21 Assembly (apenas pra

    curiosidade da galera) • Assembler == Montador • Assembly == Montagem • Vários Assemblers! • AS86 • MASM • GAS • etc • Depende da arquitetura do processador
  22. 5 de Novembro PHP'n Rio 2011 22 Procedural / Imperativo

    • Chamadas de sub-rotinas • Estruturas de controle • Variáveis com estado
  23. 5 de Novembro PHP'n Rio 2011 23 Procedural / Imperativo

    • Chamadas de sub-rotinas • Estruturas de controle • Variáveis com estado mysql_connect(), mysql_last_insert_id(), etc. If, else, for, while, switch, foreach, et.. $oi = “Tudo bem”;
  24. 5 de Novembro PHP'n Rio 2011 24 Procedural / Imperativo

  25. 5 de Novembro PHP'n Rio 2011 25 Procedural / Imperativo

    / OO
  26. 5 de Novembro PHP'n Rio 2011 26 OOP não substitui

    outros paradigmas.
  27. 5 de Novembro PHP'n Rio 2011 27 OOP complementa outros

    paradigmas.
  28. 5 de Novembro PHP'n Rio 2011 28 Smalltalk?

  29. 5 de Novembro PHP'n Rio 2011 29 Smalltalk? O resultado

    da comparação é um objeto booleano
  30. 5 de Novembro PHP'n Rio 2011 30 Smalltalk? O resultado

    da comparação é um objeto booleano IfTrue e ifFalse são métodos
  31. 5 de Novembro PHP'n Rio 2011 31 Smalltalk? O resultado

    da comparação é um objeto booleano Mas a condição ainda é imperativa! IfTrue e ifFalse são métodos
  32. 5 de Novembro PHP'n Rio 2011 32 OOP pura é

    impraticável.
  33. 5 de Novembro PHP'n Rio 2011 33 OOP pura é

    impraticável. (e não existe definição formal de “oop pura”)
  34. 5 de Novembro PHP'n Rio 2011 34 Orientação a Objetos

    • Agrupamento de sub-rotinas • Organização de responsabilidades • Abstração PDO->query(), PDO->lastInsertId() PDO, DateTime, SimpleXML Zend\Db\Adapter\Pdo\MySql extends ...
  35. 5 de Novembro PHP'n Rio 2011 35 Reflexão Função nativa

  36. 5 de Novembro PHP'n Rio 2011 36 Reflexão Função do

    usuário Chamada em tempo de execução para qualquer função
  37. 5 de Novembro PHP'n Rio 2011 37 Reflexão

  38. 5 de Novembro PHP'n Rio 2011 38 Reflexão

  39. 5 de Novembro PHP'n Rio 2011 39 Reflexão • ReflectionClass

    • ReflectionMethod • ReflectionParameter • ReflectionFunction • ReflectionProperty http://php.net/reflection (tem mais aqui!)
  40. 5 de Novembro PHP'n Rio 2011 40 Reflexão – Quem,

    como? • Doctrine ORM • Conhecer as entidades e criar os proxies • Tornar atributos privados acessíveis • Zend DI • Saber quais as dependências entre as classes • Zend Server Reflection • Mapear métodos para serviços • Muita Gente =) • Chamadas dinâmicas para construtores
  41. 5 de Novembro PHP'n Rio 2011 41 Um mundo sem

    mágica =/
  42. 5 de Novembro PHP'n Rio 2011 42 Mágica!

  43. 5 de Novembro PHP'n Rio 2011 43 MongoDB sem mágica

  44. 5 de Novembro PHP'n Rio 2011 44 MongoDB com mágica

    =D
  45. 5 de Novembro PHP'n Rio 2011 45 Mágica no PHP

    • __get - Obter propriedades • __set - Definir propriedades • __isset - Checar existência de propriedades • __unset - Remover propriedades • __call - Chamar métodos • __callStatic - Chamar métodos estáticos • __invoke - Chamar a classe como uma função • __toString - Converter a classe para string http://php.net/oop5.magic (tem mais aqui!)
  46. 5 de Novembro PHP'n Rio 2011 46 Mágica no PHP

    • O problema não está na mágica, está no que você coloca dentro dela. • Forneça sempre uma versão não-mágica. • Documente sua mágica.
  47. 5 de Novembro PHP'n Rio 2011 47 Funcional

  48. 5 de Novembro PHP'n Rio 2011 48 Funcional

  49. 5 de Novembro PHP'n Rio 2011 49 Funcional

  50. 5 de Novembro PHP'n Rio 2011 50 Funcional

  51. 5 de Novembro PHP'n Rio 2011 51 Funcional

  52. 5 de Novembro PHP'n Rio 2011 52 Funcional

  53. 5 de Novembro PHP'n Rio 2011 53 Funcional

  54. 5 de Novembro PHP'n Rio 2011 54 Funcional

  55. 5 de Novembro PHP'n Rio 2011 55 Imperativo

  56. 5 de Novembro PHP'n Rio 2011 56 OOP (só estrutura!)

  57. 5 de Novembro PHP'n Rio 2011 57 Bônus!

  58. 5 de Novembro PHP'n Rio 2011 58 Bônus!

  59. 5 de Novembro PHP'n Rio 2011 59 Bônus!

  60. 5 de Novembro PHP'n Rio 2011 60 PHP: The Good

    Parts (na humilde opinião de @alganet) • Arrays http://php.net/book.array • Streams http://php.net/streams • http, sockets, arquivos, buffers • Batteries Included • PDO, SimpleXML, json_*, SOAPClient/Server, MongoDB, mail() • Simples de criar extensões • Excelente retrocompatibilidade • O menor Hello World do mundo • A melhor documentação online • Excelente comunidade no mundo inteiro
  61. 5 de Novembro PHP'n Rio 2011 61 Hoje você viu...

    • Como são alguns dos paradigmas de programação. • PHP funcionando em múltiplos paradigmas. • Recursos MUITO FODA da linguagem.
  62. 5 de Novembro PHP'n Rio 2011 62 Perguntas?

  63. 5 de Novembro PHP'n Rio 2011 63 Obrigado!