Frameworks de Desenvolvimento Web com PHP
                                                            Elton Luís Minetto




sábado, 2 de outubro de 2010
Quem sou eu?

        Graduado e pós-graduado em Ciência da Computação.
         Cursando MBA em Gerenciamento de Projetos
        Trabalha com PHP/MySQL desde 2000
        Autor do livro Frameworks para Desenvolvimento em
         PHP - Editora Novatec e co-autor do livro Grid
         Computing in Research and Education - IBM Redbooks
        Membro do PHPSC
        Diretor de Desenvolvimento do Drimio e professor na
         Unochapecó(Chapecó/SC)
        Sócio da Coderockr




sábado, 2 de outubro de 2010
sábado, 2 de outubro de 2010
Ambiente Web

        É o ambiente formado por algumas tecnologias:
                Servidor Web
                 Protocolo HTTP e HTTPS
                 Navegadores
                 HTML, PHP, JSP, CSS, AJAX
                 Web sites e sistemas




sábado, 2 de outubro de 2010
Ambiente Web

        É o ambiente formado por algumas tecnologias:
                Servidor Web
                 Protocolo HTTP e HTTPS
                 Navegadores
                 HTML, PHP, JSP, CSS, AJAX
                 Web sites e sistemas




sábado, 2 de outubro de 2010
sábado, 2 de outubro de 2010
Repetição de tarefas




sábado, 2 de outubro de 2010
Dificuldade de Debug




sábado, 2 de outubro de 2010
Padrões não respeitados (W3C)




sábado, 2 de outubro de 2010
Clientes querem alterar - sempre




sábado, 2 de outubro de 2010
Desenvolvimento lento




sábado, 2 de outubro de 2010
Pouco reaproveitamento de código




sábado, 2 de outubro de 2010
Novas tecnologias surgindo a todo momento




sábado, 2 de outubro de 2010
Mistura de layout e lógica




sábado, 2 de outubro de 2010
E existe solução para esses (e outros) problemas?




sábado, 2 de outubro de 2010
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.
        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




sábado, 2 de outubro de 2010
Padrões

        Os frameworks são baseados em uma série de
         padrões de desenvolvimento já consolidadas como
         MVC.
              MVC é um acrônimo para Model, View, Controller (Modelo,
               Visão e Controlador). A idéia é separar todo o
               desenvolvimento de uma aplicação nestas três partes, ou
               camadas:
                 Model – gerencia o comportamento dos dados da
                  aplicação.
                 View – gerencia 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 para se
                  alterarem de forma apropriada.




sábado, 2 de outubro de 2010
Zend Framework

        O Zend Framework é um framework para PHP 5,
         orientado a objetos e baseado em MVC, que é
         desenvolvido pela empresa Zend junto com a
         comunidade de usuários PHP.
        O Zend Framework faz parte do projeto PHP
         Collaboration Project da Zend. O Collaboration
         Project é uma iniciativa da Zend, seus parceiros de
         negócios e a comunidade de desenvolvedores para
         impulsionar a utilização da linguagem PHP. Fazem
         parte deste projeto o Zend Framework, o portal Zend
         Developer Zone e a ferramenta Eclipse PHP IDE.
        http://framework.zend.com




sábado, 2 de outubro de 2010
Zend Framework - Vantagens

           Suporte comercial da Zend
           Baseado em componentes reutilizáveis
           Excelente documentação
           Fácil instalação
          Grande produtividade
          Licença mais “amigável” para empresas
          Certificação de profissionais
          Envolvidos no desenvolvimento:




sábado, 2 de outubro de 2010
Documentação

        Documentação oficial: http://framework.zend.com/
         docs/overview
        Livros




sábado, 2 de outubro de 2010
Certificação




sábado, 2 de outubro de 2010
Cases




sábado, 2 de outubro de 2010
CakePHP

        Cake é 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




sábado, 2 de outubro de 2010
CakePHP - Vantagens

        Licença flexível (MIT)
        Compatibilidade com PHP4 e PHP5
        Geração de CRUD para interação com BD
        Arquitetura MVC
        Validações
        Templates
        Ferramentas que auxiliam gerar Javascript, AJAX,
         forms HTML, I18N, etc
        Comunidade ativa
        Funciona em qualquer subdiretório web, com pouca
         configuração do Apache.




sábado, 2 de outubro de 2010
CakePHP - Documentação

          http://book.cakephp.org/
          http://bakery.cakephp.org/
          http://api.cakephp.org/
          http://www.cakephp.com.br/




sábado, 2 de outubro de 2010
CakePHP - Cases

          http://www.jacotei.com.br/
          http://www.fasul.edu.br/publicacoes-online/
          http://www.sindicatoruraldetoledo.org.br/
          http://www.fasul.edu.br/projetos/index.php/
           ce_eventos/eventos
          http://www.fasul.edu.br/projetos/index.php/
           certificado_emissoes
          http://www.fag.edu.br/paif/2
          http://www.fasul.edu.br/paif/2/admin
          Outros cases:
              http://book.cakephp.org/view/510/Sites-in-the-wild




sábado, 2 de outubro de 2010

Obrigado @wesleyklewerton pela ajuda com a lista
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)
        www.symfony-project.org/




sábado, 2 de outubro de 2010
Symfony - Vantagens

        Licença flexível (MIT)
        Fácil de instalar e configurar. Simples para aprender
        Altamente configurável: desde a estrutura de
         diretórios até bibliotecas de terceiros, quase tudo
         pode ser customizado
        Compatível com grande número de “melhores
         práticas” e “design patterns” do ambiente web
        Compatível com diversos bancos de dados
        Não re-inventa a roda. Usa outros projetos como
         Doctrine/Propel (ORM) e Prototype/Scriptaculous
         (Javascript)
        Gerador de código



sábado, 2 de outubro de 2010
Symfony - Documentação

        http://www.symfony-project.org/book/1_2/




sábado, 2 de outubro de 2010
Symfony - Cases

          Yahoo! Bookmarks
          Yahoo! Answers
          Daily Motion
          Lista completa:
              http://trac.symfony-project.org/wiki/
               ApplicationsDevelopedWithSymfony




sábado, 2 de outubro de 2010

Obrigado @marcelomx pela lista
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/




sábado, 2 de outubro de 2010
CodeIgniter/Kohana - Vantagens

        Pequeno
        Fácil instalação
        Boa performance
        Não precisa da linha de comando
        Flexibilidade
        Não possui dependências de outras bibliotecas ou
         componentes como PEAR ou PECL
        Documentação clara




sábado, 2 de outubro de 2010
CodeIgniter/Kohana - Documentação

        http://codeigniter.com/tutorials/ (vídeos)
        http://codeigniter.com/user_guide/
        http://docs.kohanaphp.com/




sábado, 2 de outubro de 2010
CodeIgniter/Kohana - Cases

        http://www.unesc.net (brasileiro)
        Outros cases:
              http://codeigniter.com/projects/




sábado, 2 de outubro de 2010
Prado

        Prado é um framework baseado em componentes e
         orientado a eventos desenvolvido para ser utilizado
         com o PHP 5.1. Seu desenvolvimento sofreu
         influências de outras ferramentas como o ASP.NET e
         o Delphi, principalmente no conceito de orientação a
         eventos
        http://www.pradosoft.com/




sábado, 2 de outubro de 2010
Prado - Vantagens

        Separação de apresentação e lógica
        Reusabilidade por utilizar o conceito de componentes
        Possui componentes que auxiliam na validação de
         formulários
        Arquivos de configuração em XML são usados para
         definir as características de aplicações e módulos
        Suporte nativo a Internacionalização
        Recursos de cache para aumentar a performance
        Suporte a múltiplos bancos de dados usando a
         biblioteca ADOdb
        Possui controles de segurança para evitar problemas
         como site-cruzado, SQL Injection etc



sábado, 2 de outubro de 2010
Prado - Documentação

        http://www.pradosoft.com/documentation/
        http://www.pradosoft.com/demos/




sábado, 2 de outubro de 2010
Prado - Cases

        http://www.discollective.com/
        Outros cases:
              http://www.pradosoft.com/references/




sábado, 2 de outubro de 2010
Perguntas




sábado, 2 de outubro de 2010
Contato

       <?php
       $card = array(
       	 ‘nome’ =>             ‘Elton Luís Minetto’,
       	 ‘site’ => ‘http://www.eltonminetto.net’,
       	 ‘e-mail’ => ‘eminetto@coderockr.com’,
            ‘twitter’ => ‘@eminetto’
       );
       var_dump($card);
       ?>




sábado, 2 de outubro de 2010

Frameworks de Desenvolvimento Web com PHP

  • 1.
    Frameworks de DesenvolvimentoWeb com PHP Elton Luís Minetto sábado, 2 de outubro de 2010
  • 2.
    Quem sou eu?  Graduado e pós-graduado em Ciência da Computação. Cursando MBA em Gerenciamento de Projetos  Trabalha com PHP/MySQL desde 2000  Autor do livro Frameworks para Desenvolvimento em PHP - Editora Novatec e co-autor do livro Grid Computing in Research and Education - IBM Redbooks  Membro do PHPSC  Diretor de Desenvolvimento do Drimio e professor na Unochapecó(Chapecó/SC)  Sócio da Coderockr sábado, 2 de outubro de 2010
  • 3.
    sábado, 2 deoutubro de 2010
  • 4.
    Ambiente Web  É o ambiente formado por algumas tecnologias:  Servidor Web  Protocolo HTTP e HTTPS  Navegadores  HTML, PHP, JSP, CSS, AJAX  Web sites e sistemas sábado, 2 de outubro de 2010
  • 5.
    Ambiente Web  É o ambiente formado por algumas tecnologias:  Servidor Web  Protocolo HTTP e HTTPS  Navegadores  HTML, PHP, JSP, CSS, AJAX  Web sites e sistemas sábado, 2 de outubro de 2010
  • 6.
    sábado, 2 deoutubro de 2010
  • 7.
    Repetição de tarefas sábado,2 de outubro de 2010
  • 8.
    Dificuldade de Debug sábado,2 de outubro de 2010
  • 9.
    Padrões não respeitados(W3C) sábado, 2 de outubro de 2010
  • 10.
    Clientes querem alterar- sempre sábado, 2 de outubro de 2010
  • 11.
  • 12.
    Pouco reaproveitamento decódigo sábado, 2 de outubro de 2010
  • 13.
    Novas tecnologias surgindoa todo momento sábado, 2 de outubro de 2010
  • 14.
    Mistura de layoute lógica sábado, 2 de outubro de 2010
  • 15.
    E existe soluçãopara esses (e outros) problemas? sábado, 2 de outubro de 2010
  • 16.
    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.  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 sábado, 2 de outubro de 2010
  • 17.
    Padrões  Os frameworks são baseados em uma série de padrões de desenvolvimento já consolidadas como MVC.  MVC é um acrônimo para Model, View, Controller (Modelo, Visão e Controlador). A idéia é separar todo o desenvolvimento de uma aplicação nestas três partes, ou camadas:  Model – gerencia o comportamento dos dados da aplicação.  View – gerencia 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 para se alterarem de forma apropriada. sábado, 2 de outubro de 2010
  • 18.
    Zend Framework  O Zend Framework é um framework para PHP 5, orientado a objetos e baseado em MVC, que é desenvolvido pela empresa Zend junto com a comunidade de usuários PHP.  O Zend Framework faz parte do projeto PHP Collaboration Project da Zend. O Collaboration Project é uma iniciativa da Zend, seus parceiros de negócios e a comunidade de desenvolvedores para impulsionar a utilização da linguagem PHP. Fazem parte deste projeto o Zend Framework, o portal Zend Developer Zone e a ferramenta Eclipse PHP IDE.  http://framework.zend.com sábado, 2 de outubro de 2010
  • 19.
    Zend Framework -Vantagens  Suporte comercial da Zend  Baseado em componentes reutilizáveis  Excelente documentação  Fácil instalação  Grande produtividade  Licença mais “amigável” para empresas  Certificação de profissionais  Envolvidos no desenvolvimento: sábado, 2 de outubro de 2010
  • 20.
    Documentação  Documentação oficial: http://framework.zend.com/ docs/overview  Livros sábado, 2 de outubro de 2010
  • 21.
  • 22.
    Cases sábado, 2 deoutubro de 2010
  • 23.
    CakePHP  Cake é 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 sábado, 2 de outubro de 2010
  • 24.
    CakePHP - Vantagens  Licença flexível (MIT)  Compatibilidade com PHP4 e PHP5  Geração de CRUD para interação com BD  Arquitetura MVC  Validações  Templates  Ferramentas que auxiliam gerar Javascript, AJAX, forms HTML, I18N, etc  Comunidade ativa  Funciona em qualquer subdiretório web, com pouca configuração do Apache. sábado, 2 de outubro de 2010
  • 25.
    CakePHP - Documentação  http://book.cakephp.org/  http://bakery.cakephp.org/  http://api.cakephp.org/  http://www.cakephp.com.br/ sábado, 2 de outubro de 2010
  • 26.
    CakePHP - Cases  http://www.jacotei.com.br/  http://www.fasul.edu.br/publicacoes-online/  http://www.sindicatoruraldetoledo.org.br/  http://www.fasul.edu.br/projetos/index.php/ ce_eventos/eventos  http://www.fasul.edu.br/projetos/index.php/ certificado_emissoes  http://www.fag.edu.br/paif/2  http://www.fasul.edu.br/paif/2/admin  Outros cases:  http://book.cakephp.org/view/510/Sites-in-the-wild sábado, 2 de outubro de 2010 Obrigado @wesleyklewerton pela ajuda com a lista
  • 27.
    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)  www.symfony-project.org/ sábado, 2 de outubro de 2010
  • 28.
    Symfony - Vantagens  Licença flexível (MIT)  Fácil de instalar e configurar. Simples para aprender  Altamente configurável: desde a estrutura de diretórios até bibliotecas de terceiros, quase tudo pode ser customizado  Compatível com grande número de “melhores práticas” e “design patterns” do ambiente web  Compatível com diversos bancos de dados  Não re-inventa a roda. Usa outros projetos como Doctrine/Propel (ORM) e Prototype/Scriptaculous (Javascript)  Gerador de código sábado, 2 de outubro de 2010
  • 29.
    Symfony - Documentação  http://www.symfony-project.org/book/1_2/ sábado, 2 de outubro de 2010
  • 30.
    Symfony - Cases  Yahoo! Bookmarks  Yahoo! Answers  Daily Motion  Lista completa:  http://trac.symfony-project.org/wiki/ ApplicationsDevelopedWithSymfony sábado, 2 de outubro de 2010 Obrigado @marcelomx pela lista
  • 31.
    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/ sábado, 2 de outubro de 2010
  • 32.
    CodeIgniter/Kohana - Vantagens  Pequeno  Fácil instalação  Boa performance  Não precisa da linha de comando  Flexibilidade  Não possui dependências de outras bibliotecas ou componentes como PEAR ou PECL  Documentação clara sábado, 2 de outubro de 2010
  • 33.
    CodeIgniter/Kohana - Documentação  http://codeigniter.com/tutorials/ (vídeos)  http://codeigniter.com/user_guide/  http://docs.kohanaphp.com/ sábado, 2 de outubro de 2010
  • 34.
    CodeIgniter/Kohana - Cases  http://www.unesc.net (brasileiro)  Outros cases:  http://codeigniter.com/projects/ sábado, 2 de outubro de 2010
  • 35.
    Prado  Prado é um framework baseado em componentes e orientado a eventos desenvolvido para ser utilizado com o PHP 5.1. Seu desenvolvimento sofreu influências de outras ferramentas como o ASP.NET e o Delphi, principalmente no conceito de orientação a eventos  http://www.pradosoft.com/ sábado, 2 de outubro de 2010
  • 36.
    Prado - Vantagens  Separação de apresentação e lógica  Reusabilidade por utilizar o conceito de componentes  Possui componentes que auxiliam na validação de formulários  Arquivos de configuração em XML são usados para definir as características de aplicações e módulos  Suporte nativo a Internacionalização  Recursos de cache para aumentar a performance  Suporte a múltiplos bancos de dados usando a biblioteca ADOdb  Possui controles de segurança para evitar problemas como site-cruzado, SQL Injection etc sábado, 2 de outubro de 2010
  • 37.
    Prado - Documentação  http://www.pradosoft.com/documentation/  http://www.pradosoft.com/demos/ sábado, 2 de outubro de 2010
  • 38.
    Prado - Cases  http://www.discollective.com/  Outros cases:  http://www.pradosoft.com/references/ sábado, 2 de outubro de 2010
  • 39.
    Perguntas sábado, 2 deoutubro de 2010
  • 40.
    Contato <?php $card = array( ‘nome’ => ‘Elton Luís Minetto’, ‘site’ => ‘http://www.eltonminetto.net’, ‘e-mail’ => ‘eminetto@coderockr.com’, ‘twitter’ => ‘@eminetto’ ); var_dump($card); ?> sábado, 2 de outubro de 2010