Frameworks de Desenvolvimento Web com PHP

Elton Minetto
Elton MinettoSoftware developer, teacher, speaker, open source evangelist, tech leader at Code:Nation
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
1 of 40

Recommended

Desenvolvendo Aplicações com Software Livre by
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livreelliando dias
1K views30 slides
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E... by
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Rogério Moraes de Carvalho
1.2K views30 slides
Palestra - Profissão: Desenvolvedor by
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
1.1K views36 slides
Aula 2 - POO: Fundamentos da linguagem Java by
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
2.7K views56 slides
Java 01 Java Visao Geral Resumo by
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoRegis Magalhães
3.7K views15 slides
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows by
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsPalestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsAlessandro Binhara
1.7K views51 slides

More Related Content

What's hot

Apostila desenvolvimento aplicações comerciais com C# by
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
74.4K views77 slides
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android by
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidPalestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidCarlos Eugenio Torres
3.1K views35 slides
Interoperabilidade com .NET em ambiente Mainframe by
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
1K views62 slides
Analise frameworks php by
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
2.6K views24 slides
Software livre - Parte 3 by
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3Fabrício Basto
305 views22 slides
Introdução a Plataforma Java EE by
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EEEder Magalhães
1.9K views44 slides

What's hot(20)

Apostila desenvolvimento aplicações comerciais com C# by Vinicius Vieira
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
Vinicius Vieira74.4K views
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android by Carlos Eugenio Torres
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidPalestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Interoperabilidade com .NET em ambiente Mainframe by Alessandro Binhara
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
Analise frameworks php by Igor Moura
Analise frameworks phpAnalise frameworks php
Analise frameworks php
Igor Moura2.6K views
Introdução a Plataforma Java EE by Eder Magalhães
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
Eder Magalhães1.9K views
Engenharia rever sa mentebinaria by Patrese Renan
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinaria
Patrese Renan140 views
Aplicações Profissionais para Internet com Zend Framework by Flávio Lisboa
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
Flávio Lisboa890 views
Fundamentos do .NET Framework - Parte 1 by Julian Correa
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1
Julian Correa11.1K views
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend by Thiago Sinésio
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio11.5K views
Java 8 - A Evolução da Linguagem by Petronio Candido
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
Petronio Candido1.4K views
Desenvolvimento de Sistemas Web - HTML5 - Introdução by Fabio Moura Pereira
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoDesenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - Introdução
Fabio Moura Pereira2.5K views

Similar to Frameworks de Desenvolvimento Web com PHP

Web Tools Pt B R by
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
354 views25 slides
Programação em Camadas com Entity Framework 4 by
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Luciano Condé
2K views26 slides
Criando Aplicações .NET com o TheWebMind by
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
757 views51 slides
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface by
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDomingos Teruel
1.1K views35 slides
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas... by
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...Alex Piaz
1K views16 slides
Desenvolvimento de Aplicações com Visual Studio by
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
7.1K views28 slides

Similar to Frameworks de Desenvolvimento Web com PHP(20)

Web Tools Pt B R by guestb9d145
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
guestb9d145354 views
Programação em Camadas com Entity Framework 4 by Luciano Condé
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4
Luciano Condé2K views
Criando Aplicações .NET com o TheWebMind by Jaydson Gomes
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
Jaydson Gomes757 views
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface by Domingos Teruel
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Domingos Teruel1.1K views
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas... by Alex Piaz
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...
Alex Piaz1K views
Entendendo Frameworks web com Python by Luiz Aldabalde
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
Luiz Aldabalde480 views
Entendendo Framework Web com Python by PythOnRio
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
PythOnRio 1.8K views
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra... by JP Clementi
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
JP Clementi475 views
Code Igniter & Zend Framework Uma UniãO De Sucesso by Jose Wilker
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De Sucesso
Jose Wilker677 views
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software by Dextra
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra844 views
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C... by Marcelo Palladino
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce... by tdc-globalcode
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
tdc-globalcode487 views
Code Igniter & Zend Framework - Uma união de sucesso by Jose Wilker
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
Jose Wilker1.8K views
Deep Dive sobre Entity Framework by Luciano Condé
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
Luciano Condé352 views

More from Elton Minetto

Go e Microserviços - Nascidos um para o outro by
Go e Microserviços - Nascidos um para o outroGo e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outroElton Minetto
1.9K views37 slides
Object Calisthenics em Go by
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em GoElton Minetto
792 views79 slides
Programar != desenvolver software (v2) by
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Elton Minetto
341 views22 slides
Gerenciando uma startup no Github Projects by
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsElton Minetto
402 views30 slides
Clean Architecture by
Clean ArchitectureClean Architecture
Clean ArchitectureElton Minetto
912 views37 slides
Serverless em Go by
Serverless em GoServerless em Go
Serverless em GoElton Minetto
428 views31 slides

More from Elton Minetto(20)

Go e Microserviços - Nascidos um para o outro by Elton Minetto
Go e Microserviços - Nascidos um para o outroGo e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outro
Elton Minetto1.9K views
Object Calisthenics em Go by Elton Minetto
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em Go
Elton Minetto792 views
Programar != desenvolver software (v2) by Elton Minetto
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)
Elton Minetto341 views
Gerenciando uma startup no Github Projects by Elton Minetto
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github Projects
Elton Minetto402 views
Clean architecture em Go - v2 by Elton Minetto
Clean architecture em Go - v2Clean architecture em Go - v2
Clean architecture em Go - v2
Elton Minetto652 views
Programar != desenvolver software by Elton Minetto
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver software
Elton Minetto1.6K views
Clean Architecture em PHP by Elton Minetto
Clean Architecture em PHPClean Architecture em PHP
Clean Architecture em PHP
Elton Minetto3.3K views
Clean Architecture in Golang by Elton Minetto
Clean Architecture in GolangClean Architecture in Golang
Clean Architecture in Golang
Elton Minetto1.4K views
A jornada do desenvolvedor by Elton Minetto
A jornada do desenvolvedorA jornada do desenvolvedor
A jornada do desenvolvedor
Elton Minetto636 views
Modernizando projetos legados usando APIs by Elton Minetto
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIs
Elton Minetto1K views
12 factor in the PHP world by Elton Minetto
12 factor in the PHP world12 factor in the PHP world
12 factor in the PHP world
Elton Minetto1.4K views
O case da Compufácil e AWS by Elton Minetto
O case da Compufácil e AWSO case da Compufácil e AWS
O case da Compufácil e AWS
Elton Minetto256 views

Frameworks de Desenvolvimento Web com PHP

  • 1. Frameworks de Desenvolvimento Web 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 de outubro 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 de outubro 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. Desenvolvimento lento sábado, 2 de outubro de 2010
  • 12. Pouco reaproveitamento de código sábado, 2 de outubro de 2010
  • 13. Novas tecnologias surgindo a todo momento sábado, 2 de outubro de 2010
  • 14. Mistura de layout e lógica sábado, 2 de outubro de 2010
  • 15. E existe solução para 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. Certificação sábado, 2 de outubro de 2010
  • 22. Cases sábado, 2 de outubro 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 de outubro 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