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

Frameworks de desenvolvimento em PHP

Elton Minetto
September 27, 2011

Frameworks de desenvolvimento em PHP

Elton Minetto

September 27, 2011
Tweet

More Decks by Elton Minetto

Other Decks in Programming

Transcript

  1. Frameworks de desenvolvimento
    em PHP
    elton luís minetto
    @eminetto

    View full-size slide

  2. Quem sou eu?
    Graduado e pós-graduado em Ciência da Computação
    Trabalha 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 full-size slide

  3. Ambiente Web
    • Sites
    • Sistemas
    • Web services

    View full-size slide

  4. Repetição de tarefas

    View full-size slide

  5. Dificuldade de debug

    View full-size slide

  6. Não uso de padrões de
    desenvolvimento

    View full-size slide

  7. Alterações constantes

    View full-size slide

  8. Desenvolvimento lento

    View full-size slide

  9. Pouco reaproveitamento
    de código

    View full-size slide

  10. Novas tecnologias surgindo
    a todo momento

    View full-size slide

  11. Mistura de layout e lógica

    View full-size slide

  12. Existe solução?

    View full-size slide

  13. Frameworks
    Uma “base” de onde pode-se desenvolver algo maior ou
    mais específico. É uma coleção de códigos, classes, funções,
    técnicas e metodologias que facilitam o desenvolvimento de
    novos softwares.

    View full-size slide

  14. Vantagens
    • Todos programam parecido graças a padronizações. Fácil
    manutenção
    • Automatiza tarefas repetitivas. DRY
    • Separação de layout e lógica. no more spaguetti
    • Reaproveitamento de códigos

    View full-size slide

  15. Padrões
    • Os frameworks são baseados em uma série de padrões de
    desenvolvimento como MVC - Model, View, Controller
    • Model – o comportamento dos dados da aplicação,
    regras de negócio
    • View – a saída gráfica e textual da parte da aplicação
    visível ao usuário
    • Controller – interpreta as entradas de mouse e teclado
    do usuário, comandando a Visão e o Modelo

    View full-size slide

  16. Ruby on Rails

    View full-size slide

  17. Zend Framework
    • PHP 5
    • OO, baseado em MVC e outros design patterns
    • Desenvolvido pela empresa Zend junto com a comunidade
    de usuários PHP
    • http://framework.zend.com

    View full-size slide

  18. Zend Framework - Vantagens
    • Suporte comercial da Zend
    • Baseado em componentes reutilizáveis
    • Boa documentação
    • Fácil instalação
    • Grande produtividade
    • Licença mais “amigável” para empresas

    View full-size slide

  19. Zend Framework - Vantagens
    • Certificação de profissionais
    • Envolvidos no desenvolvimento:

    View full-size slide

  20. Zend Framework - Documentação
    • Documentação oficial: http://framework.zend.com/docs/
    overview
    • Diversos livros e e-books, em português e inglês
    • Diversos cursos presenciais e a distância

    View full-size slide

  21. Alerta!
    Cara de pau!

    View full-size slide

  22. http://www.zfnapratica.com.br

    View full-size slide

  23. Zend Framework - Certificação

    View full-size slide

  24. Zend Framework - Cases

    View full-size slide

  25. CakePHP
    • CakePHP é um framework para PHP que usa padrões de
    desenvolvimento conhecidos como ActiveRecord e MVC. A
    idéia principal é ser um framework estruturado que
    permita a usuários PHP de todos os níveis desenvolver
    aplicações web rubustas sem perda da flexibilidade.
    • http://www.cakephp.org

    View full-size slide

  26. CakePHP - Vantagens
    • Licença flexível (MIT)
    • Compatibilidade com PHP4 e PHP5.2.8
    • Geração de CRUD para interação com BD
    • Validações
    • Templates

    View full-size slide

  27. CakePHP - Vantagens
    • Ferramentas que auxiliam gerar Javascript, AJAX, forms
    HTML, I18N, etc
    • Comunidade ativa
    • Funciona em qualquer subdiretório web, com pouca
    configuração do Apache.

    View full-size slide

  28. CakePHP - Documentação
    • http://book.cakephp.org/2.0/en/index.html
    • http://bakery.cakephp.org/
    • http://api.cakephp.org/
    • Poucos livros, em inglês e pouco atualizados

    View full-size slide

  29. CakePHP - Cases
    • http://www.jacotei.com.br/
    • http://www.traffictravis.com
    • http://www.hotscripts.com
    • http://www.copify.com
    • http://scratch.mit.edu

    View full-size slide

  30. Symfony
    • Symfony é um framework de desenvolvimento para PHP5.
    Seu principal objetivo é aumentar a velocidade de
    desenvolvimento e manutenção de aplicações web. Ele
    reduz as tarefas de codificação repetitivas, usando os
    princípios de DRY(Dont Repeat Yourself) e KISS (Keep It
    Simple Stupid)
    • http://www.symfony.com/

    View full-size slide

  31. Symfony - Vantagens
    • Licença flexível (MIT)
    • Fácil de instalar e configurar. Simples para aprender
    • Altamente configurável
    • Inovação
    • Gerador de projetos e código

    View full-size slide

  32. Symfony - Documentação
    • http://symfony.com/doc/current/index.html
    • http://symfony.com/doc/current/book/index.html
    • http://api.symfony.com/2.0/index.html
    • Poucos livros atualizados

    View full-size slide

  33. Symfony - Cases
    • Yahoo! Answers
    • Daily Motion
    • http://symfony.com/blog/category/case-studies

    View full-size slide

  34. Codeigniter/Kohana
    • O CodeIgniter é um framework para desenvolvimento em
    PHP 4 ou PHP 5 que tem seu foco na simplicidade
    • Houve um fork do projeto que deu origem ao Kohana
    • http://codeigniter.com/
    • http://www.kohanaphp.com/

    View full-size slide

  35. Codeigniter/Kohana - Vantagens
    • Pequeno, com boa performance
    • Fácil instalação
    • Não possui dependências de outras bibliotecas ou
    componentes como PEAR ou PECL
    • Flexibilidade
    • Documentação clara

    View full-size slide

  36. Codeigniter/Kohana -
    Documentação
    • http://codeigniter.com/tutorials/ (vídeos)
    • http://codeigniter.com/user_guide/
    • http://kohanaframework.org/documentation

    View full-size slide

  37. Codeigniter/Kohana - Cases
    • http://www.opensourcefood.com (CodeIgniter)
    • https://www.wepay.com (Kohana)
    • http://kids.nationalgeographic.com (Kohana)

    View full-size slide

  38. Yii
    • Yii é um framework de alta performance em PHP que utiliza
    componentes para o desenvolvimento de grandes
    aplicações Web. O nome Yii (pronunciado i) representa as
    palavras fácil (easy), eficiente (efficient) e extensível
    (extensible).
    • Criado pelos desenvolvedores do Prado
    • http://www.yiiframework.com/

    View full-size slide

  39. Yii - Vantagens
    • Performance
    • Comunidade ativa
    • Gerador de códigos
    • MVC

    View full-size slide

  40. Yii - Documentação
    • http://www.yiiframework.com/doc/
    • Dois livros, em inglês

    View full-size slide

  41. Micro Frameworks

    View full-size slide

  42. Silex
    • Micro-framework baseado nos componentes do Symfony2
    • PHP 5.3
    • Extensível
    • Fácil de instalar e testar
    • http://silex-project.org

    View full-size slide

  43. Silex - Documentação
    • http://silex-project.org/documentation

    View full-size slide

  44. Slim
    • Micro-framework voltado principalmente a criação de
    aplicações RESTful
    • PHP 5.2
    • Fácil de instalar e testar
    • Possui alguns componentes extras
    • http://www.slimframework.com

    View full-size slide

  45. Slim - Documentação
    • http://www.slimframework.com/learn

    View full-size slide

  46. Respect
    • Baseado em componentes e extensões
    • Fácil de instalar via PEAR
    • Projeto brasileiro
    • http://respect.li

    View full-size slide

  47. Respect - Documentação
    • http://respect.li

    View full-size slide

  48. Qual usar?
    • Avalie
    • Necessidades do SEU projeto
    • Maturidade do framework
    • Conhecimento da equipe X custo de treinamento
    • Qualidade da documentação e comunidade
    • Não é necessário ficar restrito a uma única escolha

    View full-size slide

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

    View full-size slide