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

PHP like a super hero

PHP like a super hero

Dicas de como iniciar no PHP e tornar-se um expert na linguagem

Elton Minetto

August 27, 2012
Tweet

More Decks by Elton Minetto

Other Decks in Technology

Transcript

  1. PHP like a
    Super Hero
    elton luís minetto
    @eminetto

    View Slide

  2. Quem são vocês?

    View Slide

  3. Quem sou eu?
    Graduado e pós-graduado em Ciência da Computação
    Trabalho com PHP/MySQL desde 2000. Trabalho com Linux
    desde 1997. Professor desde 2004.
    Autor do livro Frameworks para Desenvolvimento em PHP -
    Editora Novatec, autor do e-book Zend Framework na prática
    Sócio da Coderockr

    View Slide

  4. Motivação

    View Slide

  5. View Slide

  6. PHP?
    Por onde começo?

    View Slide

  7. View Slide

  8. PHP Namespaces Traits Orientação a objetos Banco de
    Dados
    Controle de versões
    Testes Frameworks ORM REST SOA
    Integração contínua Xdebug APC
    Memcached
    Object Calisthenics

    View Slide

  9. View Slide

  10. First things first...

    View Slide

  11. PHP

    View Slide

  12. PHP
    Namespaces

    View Slide

  13. 1.2.namespace Core\Service;
    4.use Zend\Http\Client as HttpClient;
    5.use Zend\Http\Request;
    6.class Auth
    7.{
    8. public function __construct($apiKey, $apiUri, $rpcUri)
    9. {
    10. $this->httpClient = new HttpClient();
    11. }
    12. }

    View Slide

  14. PHP
    Traits
    http://diogobesson.com.br/programacao/php-traits/

    View Slide

  15. PHP
    Servidor embutido
    php -S localhost:8080 -t /var/www/projeto

    View Slide

  16. PHP
    phar
    http://phpmaster.com/packaging-your-apps-with-phar/

    View Slide

  17. PHP
    Composer
    http://getcomposer.org

    View Slide

  18. composer.json
    1.{
    2. "minimum-stability": "dev",
    3. "require": {
    4. "silex/silex": "1.0.*",
    5. "dms/dms": "dev-master",
    6. "doctrine/common": "*",
    7. "doctrine/dbal": "*",
    8. "doctrine/orm": "*",
    9. "symfony/validator": "*",
    10. "symfony/class-loader": "*",
    11. "symfony/console": "*",
    12. "monolog/monolog": "*",
    13. "jms/metadata": "*",
    14. "jms/serializer-bundle": "*",
    15. "sybio/image-workshop": "*"
    16. }
    17.}

    View Slide

  19. Instalar dependências
    1.curl -s https://getcomposer.org/installer | php
    2.php composer.phar install

    View Slide

  20. Atualizar dependências
    1.php composer.phar update

    View Slide

  21. PHP
    Funções nativas

    View Slide

  22. Orientação a objetos

    View Slide

  23. Bancos de dados

    View Slide

  24. Bancos de dados
    SQL - MySQL, sqlite, PostgreSQL

    View Slide

  25. Bancos de dados
    NoSQL - MongoDB, CouchDB, Cassandra, Redis, Hadoop

    View Slide

  26. Controle de versões

    View Slide

  27. Controle de versões
    Git, SVN, Mercurial

    View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. Testes unitários
    PHPunit
    Mostrar os testes do modulo
    Api rodando. Provocar um
    erro colocando um novo
    parâmetro no método
    authenticate do service Auth

    View Slide

  33. Segurança e programação
    segura

    View Slide

  34. Segurança e programação segura
    https://www.owasp.org/index.php/Main_Page

    View Slide

  35. 1.$inputFilter->add($factory->createInput(array(
    2. 'name' => 'title',
    3. 'required' => true,
    4. 'filters' => array(
    5. array('name' => 'StripTags'),
    6. array('name' => 'StringTrim'),
    7. ),
    8. 'validators' => array(
    9. array(
    10. 'name' => 'StringLength',
    11. 'options' => array(
    12. 'encoding' => 'UTF-8',
    13. 'min' => 1,
    14. 'max' => 100,
    15. ),
    16. ),
    17. ),
    18. )));

    View Slide

  36. Participe, seja social
    Participe de eventos
    Participe de grupos de usuários regionais
    Escreva um blog
    Participe de fóruns e listas de discussão

    View Slide

  37. Ok?
    É isso

    View Slide

  38. View Slide

  39. Design patterns Frameworks
    Zend Framework Symfony Code Igniter Slim
    Silex Doctrine

    View Slide

  40. View Slide

  41. Design patterns

    View Slide

  42. Frameworks

    View Slide

  43. Frameworks Full-Stack
    Zend Framework, CakePHP, Symfony, Code Igniter

    View Slide

  44. Micro Frameworks
    Slim, Silex, Respect

    View Slide

  45. ORM
    Doctrine

    View Slide

  46. Aprenda mais de um sistema
    operacional
    Linux, Windows, MacOSX

    View Slide

  47. Tem mais?
    Manda!

    View Slide

  48. SOA, Rest, RPC

    View Slide

  49. Injeção de Dependências

    View Slide

  50. Performance

    View Slide

  51. Performance - Xdebug
    Profiling
    Debug

    View Slide

  52. Mostrar cachegrind.png

    View Slide

  53. Performance - Cache
    APC, Memcached

    View Slide

  54. View Slide

  55. Performance - Avaliação
    Siege, Apache ab, ySlow

    View Slide

  56. Integração contínua

    View Slide

  57. Cloud computing
    Amazon Web Services
    Heroku, PHPCloud

    View Slide

  58. Object Calisthenics
    Nove regras para melhorar o código
    http://slidesha.re/KTZM97

    View Slide

  59. Certificação

    View Slide

  60. View Slide

  61. View Slide

  62. O mais importante!

    View Slide

  63. Divirta-se no processo

    View Slide

  64. http://www.phptherightway.com

    View Slide

  65. Contato
    @eminetto
    http://eltonminetto.net
    http://coderockr.com

    View Slide