SlideShare uma empresa Scribd logo
1 de 111
Baixar para ler offline
@fgsl

           Zend Framework

    PHP Simples e Produtivo




                                
        Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
@fgsl

           Livre distribuição

    Desde que citada a fonte




                                
        Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
@fgsl

     Quem sou eu?




    www.fgsl.eti.br




            
@fgsl

    Do que vamos falar?


      Simplicidade

            +

      Produtividade
              
@fgsl

          Simplicidade

                Mito:

Só coisas 
complicadas 
tem qualidade

                   
@fgsl

        A princípio impressiona...

A  prosopopeia  flácida  para  acalentar  bovinos 
inflou o volume de minha bolsa escrotal de modo 
que estava para derrubar, com a extremidade do 
membro  inferior,  o  suporte  sustentáculo  de  uma 
das unidades de acampamento.




                           
@fgsl

             Já ouviu isso?

     Não entendi nada do que ele 
    falou. Esse cara deve ser bom!




                    
@fgsl

            Mas era só isso...


     Aquela conversa pra boi dormir 
    estava me enchendo o saco e eu 
     queria chutar o pau da barraca.



                     
@fgsl

        Olha quem está falando...

Qualquer  tolo  inteligente  pode  fazer  coisas 
grandes,  mais  complexas  e  mais  violentas.  É 
preciso  um  toque  de  gênio  –  e  um  pouco  de 
coragem – para se mover na direção oposta.



              Albert Einstein

                          
@fgsl

        Olha quem está falando...

A maioria das ideias fundamentais da ciência são 
essencialmente  simples,  e  podem,  como  regra, 
ser  expressas  em  uma  linguagem  compressível 
para todos.



              Albert Einstein

                         
@fgsl

              Essência do PHP

A  solução  mais  complexa  raramente  é  a  certa. 
(…)  enquanto  outras  soluções  que  nos  cercam 
parecem  ficar  maiores  e  mais  complexas, 
estamos  nos  esforçando  para  simplificar  e 
racionalizar o PHP (...).



                  Rasmus Lerdorf

                          
@fgsl

    PHP é objetivo




           
@fgsl

    PHP é eficaz




          
@fgsl

      Produtividade

    O que é produtividade?




               
@fgsl

    Não é isso, certamente...




                 
@fgsl

    Talvez isso...




           
@fgsl

    Não, não, é mais que isso...




                  
@fgsl

    PHP é produtivo




            
@fgsl

    Mas cuidado...




           
@fgsl

      fazer rápido X fazer bem feito


    Rápido   Bem feito        Rápido
                                   Bem feito




                    Rápido 
                    e bem 
                     feito


                          
@fgsl

    fazer rápido X fazer bem feito

        Arrumar o escapamento




                   
@fgsl

    fazer rápido X fazer bem feito

        Reaproveitar o gabinete




                    
@fgsl

       fazer rápido X fazer bem feito

    Adaptar o carro para rodar na Inglaterra




                         
@fgsl

                    Fatos

Fazer  algo  rápido  pode  gerar  complexidade, 
enquanto  fazer  algo  bem  feito  pode  gerar 
simplicidade.




                        
@fgsl

                      Fatos

Algo  criado  para  resolver  um  problema  pode  se 
tornar um problema.




                           
@fgsl

                      Fatos

A  situação  crítica  é  quando  você  não  consegue 
mudar  algo  mal  feito  por  precisar  dele  para 
contornar um problema maior.




                           
@fgsl

    Fatos




       
@fgsl

                     Fatos

    CPOP: Copy & Paste Oriented Programming

                  Dead Code

            CBI: Cross Bug Injection

          TDB: Total Destruction Button



                         
@fgsl

    O que devo fazer?




             
@fgsl

                Recomendações




                     Newton




                        
    Copernico        Galileu    Descartes
@fgsl

    Recomendações




           
@fgsl

                  Recomendações

       Utilize a experiência de especialistas.

    Repita projetos de sucesso feitos por outras 
                     pessoas.

    Não reinvente a roda.                                   




                                
@fgsl

    E você pergunta...

                  COMO?




             
@fgsl

         E eu respondo:


    Use padrões de 
    projetos e boas 
        práticas




                    
@fgsl

    E você pergunta...

           Mas os padrões são 
          apenas um modelo de 
          solução! Eu tenho que 
             implementá­los!




              
@fgsl

          E eu respondo:


    Então use frameworks!




                 
@fgsl

            E eu respondo:


    Ou melhor, use Zend Framework!




                    
@fgsl

             Questão



O que é Zend Framework?




                  
@fgsl

    É a Liga da Justiça




              
@fgsl

    São os Vingadores!




             
@fgsl

               Ou seja...

           É uma biblioteca de 
     componentes PHP com baixo 
      acoplamento que podem ser 
    utilizados de forma separada ou 
    em conjunto para construção ou 
         manutenção de projetos.
                    
@fgsl
        A volta ao mundo em ~70 
              componentes
    De A a Z, o que podemos fazer 
        com Zend Framework




                    
@fgsl

              Zend_Acl

    Lista de controle de acessos. 
     Trabalha com a abordagem 
     RBAC (Role Based Access 
               Control)


                   
@fgsl

              Zend_Amf



     AMF (Action Message Format). 
    Integração com com Adobe Flex.



                   
@fgsl

            Zend_Application



       Encapsula a inicialização e 
    processamento das requisições.



                    
@fgsl

              Zend_Auth


         Componente que faz 
    autenticação, independente do 
    motor, e mantém os dados em 
       armazenamento próprio.


                   
@fgsl

    Zend_Barcode




          
@fgsl

    Zend_Cache




         
@fgsl

    Zend_Captcha




          
@fgsl

             Zend_Cloud


    Componente para abstração de 
     recursos de computação em 
               nuvem.


                   
@fgsl

    Zend_CodeGenerator




            ...




              
@fgsl

             Zend_Config



    Lê e escreve nos formatos INI, 
         XML, YAML e JSON.



                    
@fgsl

          Zend_Console_Getopt



    Facilita a criação de interfaces 
       para linha de comando.



                     
@fgsl

            Zend_Controller


    Implementação dos padrões de 
     projeto Front Controller, Page 
    Controller, com URLs amigáveis 
     e roteamento personalizado.


                    
@fgsl

             Zend_Currency


    Implementa o padrão de projeto 
    Currency, para abstrair moedas. 
                 i18n.


                    
@fgsl

              Zend_Date




    Abstração de data e hora. i18n.




                    
@fgsl

             Zend_Db


     Abstração de conexão com 
    banco de dados e mapeador 
          objeto­relacional.


                 
@fgsl

           Zend_Debug



    Componente para ajudar a 
      depurar aplicações.



                 
@fgsl

            Zend_Dojo



    Integração com o framework 
       Javascript Dojo Toolkit.



                  
@fgsl

            Zend_Dom




    Manipulação da árvore DOM.




                 
@fgsl

     Zend_Exception




    Exceção padrão.




            
@fgsl

           Zend_Feed




    Leitor e escritor de RSS.




                 
@fgsl

              Zend_File



    Transferência de arquivos com 
         validadores e filtros.



                   
@fgsl

            Zend_Filter



    Filtro de entrada e saída de 
               dados.



                   
@fgsl

          Zend_Form



    Construção dinâmica de 
         formulários.



                
@fgsl

          Zend_GData




Integração com a API do Google.




                
@fgsl

            Zend_Http



    Abstração de requisições e 
            respostas.



                  
@fgsl

             Zend_Infocard



    Utilizado por Zend_Auth, abstrai 
          cartões de identidade.



                     
@fgsl

            Zend_Json




    Conversor e servidor JSON.




                 
@fgsl

             Zend_Layout




    Parte do padrão Two Step View.




                   
@fgsl

              Zend_Ldap




    Integração com serviços LDAP.




                   
@fgsl

           Zend_Loader




    Autocarregador de classes.




                 
@fgsl

            Zend_Locale



    Componente para localização 
             (l10n).



                  
@fgsl

        Zend_Log




    Abstração de log.




             
@fgsl

         Zend_Mail




    Abstração de e­mail.




              
@fgsl

              Zend_Markup


    Abstração para leitura e geração 
     de documentos baseados em 
       linguagem de marcação.


                     
@fgsl

           Zend_Measure




    Abstração de medidas. i18n.




                  
@fgsl

           Zend_Memory



    Objetos para ambientes com 
      limitações de memória.



                  
@fgsl

               Zend_Mime


      Manipulador de mensagens 
    MIME (Multipurpose Internet Mail 
       Extensions), usado por 
             Zend_Mail.


                     
@fgsl

           Zend_Navigation


    Controlador da navegação do 
    usuário, gerencia árvores de 
    ponteiros para páginas Web.


                   
@fgsl

              Zend_Oauth



    Implementação da especificação 
     Oauth para autorização segura.



                    
@fgsl

         Zend_OpenId



    Encapsula OpenId para 
        autenticação.



               
@fgsl

            Zend_Paginator




    Controle de paginação de dados.




                    
@fgsl

            Zend_Pdf



    Geração e carregamento de 
          arquivos PDF.



                 
@fgsl

           Zend_ProgressBar




    Geração de barra de progresso.




                   
@fgsl

             Zend_Queue




    Fábrica de clientes para filas.




                    
@fgsl

            Zend_Reflection



    Extensão da API de reflexão do 
                PHP.



                    
@fgsl

           Zend_Registry



    Implementação do padrão de 
         projeto Registry.



                  
@fgsl

             Zend_Rest




    Clientes e servidores REST.




                  
@fgsl

         Zend_Search_Lucene



    Mecanismo de busca baseado 
        no Apache Lucene.



                  
@fgsl

        Zend_Serializer



    Fábrica de formatos de 
         serialização.



                
@fgsl

           Zend_Server


    Abstração para criação de 
    servidores (provedores de 
            serviços).


                 
@fgsl

           Zend_Service


    Abstração para serviços de 
     terceiros, possui diversas 
     implementações prontas.


                  
@fgsl

             Zend_Session



    Abstração da sessão. Controla 
    início, fim e cria namespaces.



                   
@fgsl

           Zend_Soap




    Servidor e cliente SOAP.




                
@fgsl

            Zend_Tag




    Criação de listas de tags.




                 
@fgsl

            Zend_Test



     Extensão do PHPUnit para 
    aplicações Zend Framework.



                 
@fgsl

            Zend_Text



Classes para criar artes e tabelas 
      baseadas em texto.



                  
@fgsl

           Zend_TimeSync


       Recupera data e hora de 
    servidores NTP (Network Time 
      Protocol) ou SNTP (Simple 
                 NTP).


                   
@fgsl

              Zend_Tool



    Gerador de código e framework 
      para criação de geradores.



                   
@fgsl

         Zend_Translate




    Tradução de textos. i18n.




                 
@fgsl

        Zend_Uri




    Abstração de URI.




             
@fgsl

            Zend_Validate




    Regras de validação de dados.




                   
@fgsl

        Zend_Version




    Versão do framework.




              
@fgsl

               Zend_View


     Implementação da camada de 
    visão. Usa por padrão templates 
         com extensão .phtml.


                    
@fgsl

             Zend_Wildfire

    Wildfire é um projeto open source 
      para canais de comunicação 
    padronizados. O componente do 
     Zend permite enviar dados do 
         servidor para o Firebug.


                     
@fgsl

            Zend_XmlRpc




    Cliente e servidor de XML­RPC.




                   
@fgsl

    UFA!




      
@fgsl

                        Perguntas?

flaviogomesdasilva@yahoo.com.br

www.fgsl.eti.br 

http://www.temporealeventos.com.br 




                                   
@fgsl

                         Obrigado!

flaviogomesdasilva@yahoo.com.br

www.fgsl.eti.br 

http://www.temporealeventos.com.br 




                                   
@fgsl

                          Referências




    Holmes, Josh. The Lost Art of Simplicity. 
            PHP Conference 2010.
      http://www.joshholmes.com/blog/2009/04/29/thelostartofsimplicity/




                                         

Mais conteúdo relacionado

Destaque

Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...Fernando Geraldo Mantoan
 
Sistema de gestão de projetos
Sistema de gestão de projetosSistema de gestão de projetos
Sistema de gestão de projetosyuriphillippe
 
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...Tchelinux
 
Sistema de gestão acadêmico
Sistema de gestão acadêmicoSistema de gestão acadêmico
Sistema de gestão acadêmicoLucas Sabadini
 
Como o governo do Brasil usa PHP
Como o governo do Brasil usa PHPComo o governo do Brasil usa PHP
Como o governo do Brasil usa PHPFlávio Lisboa
 
SIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão EscolarSIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão Escolarguest34534433
 
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...Fábio Silva
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLRogerio de Moraes
 
Programção PHP
Programção PHPProgramção PHP
Programção PHPceap
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1Norivan Oliveira
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 

Destaque (18)

Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
Estudo de Caso de uma Estrutura de Autenticação Única utilizando o protocolo ...
 
Sistema php list
Sistema php listSistema php list
Sistema php list
 
Introducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandiIntroducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandi
 
Sistema de gestão de projetos
Sistema de gestão de projetosSistema de gestão de projetos
Sistema de gestão de projetos
 
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
 
Sistema de gestão acadêmico
Sistema de gestão acadêmicoSistema de gestão acadêmico
Sistema de gestão acadêmico
 
Como o governo do Brasil usa PHP
Como o governo do Brasil usa PHPComo o governo do Brasil usa PHP
Como o governo do Brasil usa PHP
 
Sistema php
Sistema phpSistema php
Sistema php
 
SIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão EscolarSIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão Escolar
 
Pre-Projeto Sistema Distribuido
Pre-Projeto Sistema DistribuidoPre-Projeto Sistema Distribuido
Pre-Projeto Sistema Distribuido
 
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
 
Programção PHP
Programção PHPProgramção PHP
Programção PHP
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 

Mais de Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 

Mais de Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 

PHP Simples e Produtivo

  • 1. @fgsl Zend Framework PHP Simples e Produtivo     Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
  • 2. @fgsl Livre distribuição Desde que citada a fonte     Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
  • 3. @fgsl Quem sou eu? www.fgsl.eti.br    
  • 4. @fgsl Do que vamos falar? Simplicidade + Produtividade    
  • 5. @fgsl Simplicidade Mito: Só coisas  complicadas  tem qualidade    
  • 6. @fgsl A princípio impressiona... A  prosopopeia  flácida  para  acalentar  bovinos  inflou o volume de minha bolsa escrotal de modo  que estava para derrubar, com a extremidade do  membro  inferior,  o  suporte  sustentáculo  de  uma  das unidades de acampamento.    
  • 7. @fgsl Já ouviu isso? Não entendi nada do que ele  falou. Esse cara deve ser bom!    
  • 8. @fgsl Mas era só isso... Aquela conversa pra boi dormir  estava me enchendo o saco e eu  queria chutar o pau da barraca.    
  • 9. @fgsl Olha quem está falando... Qualquer  tolo  inteligente  pode  fazer  coisas  grandes,  mais  complexas  e  mais  violentas.  É  preciso  um  toque  de  gênio  –  e  um  pouco  de  coragem – para se mover na direção oposta. Albert Einstein    
  • 10. @fgsl Olha quem está falando... A maioria das ideias fundamentais da ciência são  essencialmente  simples,  e  podem,  como  regra,  ser  expressas  em  uma  linguagem  compressível  para todos. Albert Einstein    
  • 11. @fgsl Essência do PHP A  solução  mais  complexa  raramente  é  a  certa.  (…)  enquanto  outras  soluções  que  nos  cercam  parecem  ficar  maiores  e  mais  complexas,  estamos  nos  esforçando  para  simplificar  e  racionalizar o PHP (...). Rasmus Lerdorf    
  • 12. @fgsl PHP é objetivo    
  • 13. @fgsl PHP é eficaz    
  • 14. @fgsl Produtividade O que é produtividade?    
  • 15. @fgsl Não é isso, certamente...    
  • 16. @fgsl Talvez isso...    
  • 17. @fgsl Não, não, é mais que isso...    
  • 18. @fgsl PHP é produtivo    
  • 19. @fgsl Mas cuidado...    
  • 20. @fgsl fazer rápido X fazer bem feito Rápido Bem feito Rápido Bem feito Rápido  e bem  feito    
  • 21. @fgsl fazer rápido X fazer bem feito Arrumar o escapamento    
  • 22. @fgsl fazer rápido X fazer bem feito Reaproveitar o gabinete    
  • 23. @fgsl fazer rápido X fazer bem feito Adaptar o carro para rodar na Inglaterra    
  • 24. @fgsl Fatos Fazer  algo  rápido  pode  gerar  complexidade,  enquanto  fazer  algo  bem  feito  pode  gerar  simplicidade.    
  • 25. @fgsl Fatos Algo  criado  para  resolver  um  problema  pode  se  tornar um problema.    
  • 26. @fgsl Fatos A  situação  crítica  é  quando  você  não  consegue  mudar  algo  mal  feito  por  precisar  dele  para  contornar um problema maior.    
  • 27. @fgsl Fatos    
  • 28. @fgsl Fatos CPOP: Copy & Paste Oriented Programming Dead Code CBI: Cross Bug Injection TDB: Total Destruction Button    
  • 29. @fgsl O que devo fazer?    
  • 30. @fgsl Recomendações Newton     Copernico Galileu Descartes
  • 31. @fgsl Recomendações    
  • 32. @fgsl Recomendações Utilize a experiência de especialistas. Repita projetos de sucesso feitos por outras  pessoas. Não reinvente a roda.                                       
  • 33. @fgsl E você pergunta... COMO?    
  • 34. @fgsl E eu respondo: Use padrões de  projetos e boas  práticas    
  • 35. @fgsl E você pergunta... Mas os padrões são  apenas um modelo de  solução! Eu tenho que  implementá­los!    
  • 36. @fgsl E eu respondo: Então use frameworks!    
  • 37. @fgsl E eu respondo: Ou melhor, use Zend Framework!    
  • 38. @fgsl Questão O que é Zend Framework?    
  • 39. @fgsl É a Liga da Justiça    
  • 40. @fgsl São os Vingadores!    
  • 41. @fgsl Ou seja... É uma biblioteca de  componentes PHP com baixo  acoplamento que podem ser  utilizados de forma separada ou  em conjunto para construção ou  manutenção de projetos.    
  • 42. @fgsl A volta ao mundo em ~70  componentes De A a Z, o que podemos fazer  com Zend Framework    
  • 43. @fgsl Zend_Acl Lista de controle de acessos.  Trabalha com a abordagem  RBAC (Role Based Access  Control)    
  • 44. @fgsl Zend_Amf AMF (Action Message Format).  Integração com com Adobe Flex.    
  • 45. @fgsl Zend_Application Encapsula a inicialização e  processamento das requisições.    
  • 46. @fgsl Zend_Auth Componente que faz  autenticação, independente do  motor, e mantém os dados em  armazenamento próprio.    
  • 47. @fgsl Zend_Barcode    
  • 48. @fgsl Zend_Cache    
  • 49. @fgsl Zend_Captcha    
  • 50. @fgsl Zend_Cloud Componente para abstração de  recursos de computação em  nuvem.    
  • 51. @fgsl Zend_CodeGenerator ...    
  • 52. @fgsl Zend_Config Lê e escreve nos formatos INI,  XML, YAML e JSON.    
  • 53. @fgsl Zend_Console_Getopt Facilita a criação de interfaces  para linha de comando.    
  • 54. @fgsl Zend_Controller Implementação dos padrões de  projeto Front Controller, Page  Controller, com URLs amigáveis  e roteamento personalizado.    
  • 55. @fgsl Zend_Currency Implementa o padrão de projeto  Currency, para abstrair moedas.  i18n.    
  • 56. @fgsl Zend_Date Abstração de data e hora. i18n.    
  • 57. @fgsl Zend_Db Abstração de conexão com  banco de dados e mapeador  objeto­relacional.    
  • 58. @fgsl Zend_Debug Componente para ajudar a  depurar aplicações.    
  • 59. @fgsl Zend_Dojo Integração com o framework  Javascript Dojo Toolkit.    
  • 60. @fgsl Zend_Dom Manipulação da árvore DOM.    
  • 61. @fgsl Zend_Exception Exceção padrão.    
  • 62. @fgsl Zend_Feed Leitor e escritor de RSS.    
  • 63. @fgsl Zend_File Transferência de arquivos com  validadores e filtros.    
  • 64. @fgsl Zend_Filter Filtro de entrada e saída de  dados.    
  • 65. @fgsl Zend_Form Construção dinâmica de  formulários.    
  • 66. @fgsl Zend_GData Integração com a API do Google.    
  • 67. @fgsl Zend_Http Abstração de requisições e  respostas.    
  • 68. @fgsl Zend_Infocard Utilizado por Zend_Auth, abstrai  cartões de identidade.    
  • 69. @fgsl Zend_Json Conversor e servidor JSON.    
  • 70. @fgsl Zend_Layout Parte do padrão Two Step View.    
  • 71. @fgsl Zend_Ldap Integração com serviços LDAP.    
  • 72. @fgsl Zend_Loader Autocarregador de classes.    
  • 73. @fgsl Zend_Locale Componente para localização  (l10n).    
  • 74. @fgsl Zend_Log Abstração de log.    
  • 75. @fgsl Zend_Mail Abstração de e­mail.    
  • 76. @fgsl Zend_Markup Abstração para leitura e geração  de documentos baseados em  linguagem de marcação.    
  • 77. @fgsl Zend_Measure Abstração de medidas. i18n.    
  • 78. @fgsl Zend_Memory Objetos para ambientes com  limitações de memória.    
  • 79. @fgsl Zend_Mime Manipulador de mensagens  MIME (Multipurpose Internet Mail  Extensions), usado por  Zend_Mail.    
  • 80. @fgsl Zend_Navigation Controlador da navegação do  usuário, gerencia árvores de  ponteiros para páginas Web.    
  • 81. @fgsl Zend_Oauth Implementação da especificação  Oauth para autorização segura.    
  • 82. @fgsl Zend_OpenId Encapsula OpenId para  autenticação.    
  • 83. @fgsl Zend_Paginator Controle de paginação de dados.    
  • 84. @fgsl Zend_Pdf Geração e carregamento de  arquivos PDF.    
  • 85. @fgsl Zend_ProgressBar Geração de barra de progresso.    
  • 86. @fgsl Zend_Queue Fábrica de clientes para filas.    
  • 87. @fgsl Zend_Reflection Extensão da API de reflexão do  PHP.    
  • 88. @fgsl Zend_Registry Implementação do padrão de  projeto Registry.    
  • 89. @fgsl Zend_Rest Clientes e servidores REST.    
  • 90. @fgsl Zend_Search_Lucene Mecanismo de busca baseado  no Apache Lucene.    
  • 91. @fgsl Zend_Serializer Fábrica de formatos de  serialização.    
  • 92. @fgsl Zend_Server Abstração para criação de  servidores (provedores de  serviços).    
  • 93. @fgsl Zend_Service Abstração para serviços de  terceiros, possui diversas  implementações prontas.    
  • 94. @fgsl Zend_Session Abstração da sessão. Controla  início, fim e cria namespaces.    
  • 95. @fgsl Zend_Soap Servidor e cliente SOAP.    
  • 96. @fgsl Zend_Tag Criação de listas de tags.    
  • 97. @fgsl Zend_Test Extensão do PHPUnit para  aplicações Zend Framework.    
  • 98. @fgsl Zend_Text Classes para criar artes e tabelas  baseadas em texto.    
  • 99. @fgsl Zend_TimeSync Recupera data e hora de  servidores NTP (Network Time  Protocol) ou SNTP (Simple  NTP).    
  • 100. @fgsl Zend_Tool Gerador de código e framework  para criação de geradores.    
  • 101. @fgsl Zend_Translate Tradução de textos. i18n.    
  • 102. @fgsl Zend_Uri Abstração de URI.    
  • 103. @fgsl Zend_Validate Regras de validação de dados.    
  • 104. @fgsl Zend_Version Versão do framework.    
  • 105. @fgsl Zend_View Implementação da camada de  visão. Usa por padrão templates  com extensão .phtml.    
  • 106. @fgsl Zend_Wildfire Wildfire é um projeto open source  para canais de comunicação  padronizados. O componente do  Zend permite enviar dados do  servidor para o Firebug.    
  • 107. @fgsl Zend_XmlRpc Cliente e servidor de XML­RPC.    
  • 108. @fgsl UFA!    
  • 109. @fgsl Perguntas? flaviogomesdasilva@yahoo.com.br www.fgsl.eti.br  http://www.temporealeventos.com.br     
  • 110. @fgsl Obrigado! flaviogomesdasilva@yahoo.com.br www.fgsl.eti.br  http://www.temporealeventos.com.br     
  • 111. @fgsl Referências Holmes, Josh. The Lost Art of Simplicity.  PHP Conference 2010. http://www.joshholmes.com/blog/2009/04/29/thelostartofsimplicity/