SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
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
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3Fabrício Basto
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EEEder Magalhães
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinariaPatrese Renan
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkFlávio Lisboa
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETJosé Corrêa Viana
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Julian Correa
 
Aná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 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 ZendThiago Sinésio
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemPetronio Candido
 
Desenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoDesenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoFabio Moura Pereira
 

Was ist angesagt? (20)

Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
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
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinaria
 
O projeto Mono
O projeto MonoO projeto Mono
O projeto Mono
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
ASP.NET - Conceitos Básicos
ASP.NET - Conceitos BásicosASP.NET - Conceitos Básicos
ASP.NET - Conceitos Básicos
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NET
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1
 
Aná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 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
 
REST com JSF 2 e HTML 5
REST com JSF 2 e HTML 5REST com JSF 2 e HTML 5
REST com JSF 2 e HTML 5
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
 
Manual PHP
Manual PHPManual PHP
Manual PHP
 
PHP Moderno
PHP ModernoPHP Moderno
PHP Moderno
 
Desenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoDesenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - Introdução
 

Ähnlich wie Frameworks de Desenvolvimento Web com PHP

Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Luciano Condé
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
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
 
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...
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...Alex Piaz
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
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...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...JP Clementi
 
Code Igniter & Zend Framework Uma UniãO De Sucesso
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 SucessoJose Wilker
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
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 SoftwareDextra
 
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...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
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...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...Marcelo Palladino
 
Code Igniter & Zend Framework - Uma união de sucesso
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 sucessoJose Wilker
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkLuciano Condé
 

Ähnlich wie Frameworks de Desenvolvimento Web com PHP (20)

Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
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
 
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...
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
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...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Code Igniter & Zend Framework Uma UniãO De Sucesso
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
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
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
 
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...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
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...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
 
Relatório pedrocastro 2012_2013_v1
Relatório pedrocastro 2012_2013_v1Relatório pedrocastro 2012_2013_v1
Relatório pedrocastro 2012_2013_v1
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
Code Igniter & Zend Framework - Uma união de sucesso
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
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
 

Mehr von Elton Minetto

Go e Microserviços - Nascidos um para o outro
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
 
Object Calisthenics em Go
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em GoElton Minetto
 
Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Elton Minetto
 
Gerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsElton Minetto
 
Clean architecture em Go - v2
Clean architecture em Go - v2Clean architecture em Go - v2
Clean architecture em Go - v2Elton Minetto
 
Programar != desenvolver software
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver softwareElton Minetto
 
Clean Architecture em PHP
Clean Architecture em PHPClean Architecture em PHP
Clean Architecture em PHPElton Minetto
 
Clean Architecture in Golang
Clean Architecture in GolangClean Architecture in Golang
Clean Architecture in GolangElton Minetto
 
A jornada do desenvolvedor
A jornada do desenvolvedorA jornada do desenvolvedor
A jornada do desenvolvedorElton Minetto
 
Product and Technology
Product and TechnologyProduct and Technology
Product and TechnologyElton Minetto
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech StackElton Minetto
 
Modernizando projetos legados usando APIs
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIsElton Minetto
 
12 factor in the PHP world
12 factor in the PHP world12 factor in the PHP world
12 factor in the PHP worldElton Minetto
 
Building APIs using Go
Building APIs using GoBuilding APIs using Go
Building APIs using GoElton Minetto
 
O case da Compufácil e AWS
O case da Compufácil e AWSO case da Compufácil e AWS
O case da Compufácil e AWSElton Minetto
 

Mehr von Elton Minetto (20)

Go e Microserviços - Nascidos um para o outro
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
 
Object Calisthenics em Go
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em Go
 
Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)
 
Gerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github Projects
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Serverless em Go
Serverless em GoServerless em Go
Serverless em Go
 
JAMstack
JAMstackJAMstack
JAMstack
 
Clean architecture em Go - v2
Clean architecture em Go - v2Clean architecture em Go - v2
Clean architecture em Go - v2
 
Programar != desenvolver software
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver software
 
Clean Architecture em PHP
Clean Architecture em PHPClean Architecture em PHP
Clean Architecture em PHP
 
Clean Architecture in Golang
Clean Architecture in GolangClean Architecture in Golang
Clean Architecture in Golang
 
A jornada do desenvolvedor
A jornada do desenvolvedorA jornada do desenvolvedor
A jornada do desenvolvedor
 
Product and Technology
Product and TechnologyProduct and Technology
Product and Technology
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech Stack
 
Modernizando projetos legados usando APIs
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIs
 
12 factor in the PHP world
12 factor in the PHP world12 factor in the PHP world
12 factor in the PHP world
 
Building APIs using Go
Building APIs using GoBuilding APIs using Go
Building APIs using Go
 
Start you
Start youStart you
Start you
 
O case da Compufácil e AWS
O case da Compufácil e AWSO case da Compufácil e AWS
O case da Compufácil e AWS
 
Introdução a Go
Introdução a GoIntrodução a Go
Introdução a Go
 

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