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 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 Slide

  3. Ambiente Web
    • Sites
    • Sistemas
    • Web services

    View Slide

  4. View Slide

  5. Repetição de tarefas

    View Slide

  6. Dificuldade de debug

    View Slide

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

    View Slide

  8. Alterações constantes

    View Slide

  9. Desenvolvimento lento

    View Slide

  10. Pouco reaproveitamento
    de código

    View Slide

  11. Novas tecnologias surgindo
    a todo momento

    View Slide

  12. Mistura de layout e lógica

    View Slide

  13. Existe solução?

    View Slide

  14. 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 Slide

  15. 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 Slide

  16. 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 Slide

  17. Ruby on Rails

    View Slide

  18. Full-Stack

    View Slide

  19. View Slide

  20. 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 Slide

  21. 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 Slide

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

    View Slide

  23. 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 Slide

  24. Alerta!
    Cara de pau!

    View Slide

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

    View Slide

  26. Zend Framework - Certificação

    View Slide

  27. Zend Framework - Cases

    View Slide

  28. 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 Slide

  29. 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 Slide

  30. 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 Slide

  31. 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 Slide

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

    View Slide

  33. 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 Slide

  34. 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 Slide

  35. 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 Slide

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

    View Slide

  37. 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 Slide

  38. 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 Slide

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

    View Slide

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

    View Slide

  41. 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 Slide

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

    View Slide

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

    View Slide

  44. Micro Frameworks

    View Slide

  45. View Slide

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

    View Slide

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

    View Slide

  48. 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

  52. 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 Slide

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

    View Slide