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

PHP Maroto

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

PHP Maroto

Avatar for Alexandre Gaigalas

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.