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

PHP Maroto

PHP Maroto

Alexandre Gaigalas

November 06, 2011
Tweet

More Decks by Alexandre Gaigalas

Other Decks in Technology

Transcript

  1. 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.
  2. 5 de Novembro PHP'n Rio 2011 6 PHP Imperativo, Procedural

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

    Objetos Agrupamento de responsabilidades
  4. 5 de Novembro PHP'n Rio 2011 10 PHP Reflexivo Sabe

    sobre si mesmo em tempo de execução
  5. 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!
  6. 5 de Novembro PHP'n Rio 2011 14 PHP Funcional Funções

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

    menos 4 paradigmas! Por que só focar em OOP? :(
  8. 5 de Novembro PHP'n Rio 2011 19 A maioria dos

    programadores nunca viu Assembly code na vida.
  9. 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!
  10. 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
  11. 5 de Novembro PHP'n Rio 2011 22 Procedural / Imperativo

    • Chamadas de sub-rotinas • Estruturas de controle • Variáveis com estado
  12. 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”;
  13. 5 de Novembro PHP'n Rio 2011 29 Smalltalk? O resultado

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

    da comparação é um objeto booleano IfTrue e ifFalse são métodos
  15. 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
  16. 5 de Novembro PHP'n Rio 2011 33 OOP pura é

    impraticável. (e não existe definição formal de “oop pura”)
  17. 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 ...
  18. 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
  19. 5 de Novembro PHP'n Rio 2011 39 Reflexão • ReflectionClass

    • ReflectionMethod • ReflectionParameter • ReflectionFunction • ReflectionProperty http://php.net/reflection (tem mais aqui!)
  20. 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
  21. 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!)
  22. 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.
  23. 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
  24. 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.