SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Downloaden Sie, um offline zu lesen
Zend Framework




                 20/08/2012
Curriculum

     Flávio Gomes da Silva Lisboa
     Bacharel em Ciência da Computação com pós-graduação em Aplicações
     Corporativas usando Orientação a Objetos e Tecnologia Java pela
     Universidade Tecnológica Federal do Paraná. Já atuou como programador
     em empresas privadas de informática e funcionário de carreira do Banco
     do Brasil, onde chegou a analista na diretoria internacional. Atualmente é
     consultor tecnológico da Coordenação Estratégica de Tecnologia do
     Serviço Federal de Processamento de Dados (Serpro). Foi professor na
     pós-graduação da UNICID e é instrutor de cursos técnicos na Tempo Real
     Eventos e conteudista da TreinaWeb. Foi membro do time oficial de
     tradução do Zend Framework e autor de três livros sobre o tema. É
     contribuidor oficial do projeto Tine 2.0, suíte livre de comunicação em
     PHP. Tem experiência na área de Ciência da Computação, com ênfase
     em Software Livre, atuando principalmente nos seguintes temas: Java,
     PHP, Python, padrões, frameworks, MVC, DCI e objetos.




Zend Framework
Curriculum

     Flávio Gomes da Silva Lisboa




Zend Framework
Zend Framework
Zend Framework

O que é isso?




  Framework de aplicação web orientado a objetos,
  aberto, implementado em PHP 5 e licenciado sob
                New BSD License.
Zend Framework




/* História real enviada por Wagner */

Alonso: Cara… O que é “Orientado a objetos”?

Programador: É uma forma de programar que foi criada para tentar aproximar o mundo real do mundo virtual usando
propriedades, objetos, métodos, etc..

Alonso: Ahhhh tá… É que eu acho que faço orientado a objetos e nem sei…

FACEPALM
Zend Framework
Zend Framework

Características




➔Framework PHP 5 completamente aberto.
➔Muito fácil de usar.

➔Usa a regra 80:20 (80% das coisas que você

precisa estão lá).
➔Sem configurações complexas.
Zend Framework
Zend Framework

Características




➔Licença aberta BSD, como o PHP.
➔Mais de 150.000 linhas de código de alta

qualidade.
➔Mais de 65% cobertas com testes de unidade.

➔Grande comunidade.
Zend Framework
Zend Framework

Características




         Gerador de código integrado com IDEs
Zend Framework
Zend Framework

Características
  Facilmente integrável com frameworks Javascript




  ●Zend Framework já vem com Dojo
  ●Classes Zend_Dojo e ZendX_JQuery
Zend Framework
Zend Framework

Usuários
Zend Framework
Zend Framework

Números

➔ Mais de 10 milhões de downloads
➔ Mais de 500 contribuidores

➔ Mais de 1000 páginas no Guia de Referência

➔ Mais de 500 exemplos no Guia de Referência

➔ Mais de 6 mihões de hits no Google

➔ Mais de 120 projetos baseados, estendendo ou

suportando Zend Framework no SourceForge
➔ Mais de 280 projetos baseados, estendendo, ou

suportando Zend Framework no Google Code
➔ Mais de 4000 relatos resolvidos no Issue Tracker
Ele usa a estrutura MVC
Zend Framework
Ele usa a estrutura MVC
Zend Framework
Ele usa a estrutura MVC
Zend Framework

Modelo




A representação específica do domínio        da
informação sobre a qual a aplicação opera.
Ele usa a estrutura MVC
Zend Framework
Ele usa a estrutura MVC
Zend Framework

Visão/Visualizador




Renderiza o modelo dentro de uma forma adequada
    para interação, tipicamente um elemento da
 interface com o usuário. Múltiplas visões podem
   existir para um único modelo para diferentes
                     propósitos.
Ele usa a estrutura MVC
Zend Framework
Ele usa a estrutura MVC
Zend Framework

Controlador




Processa e responde a eventos, tipicamente ações do
usuário, e pode provocar mudanças no modelo.
O QUE TEM NO
Zend Framework


        ZEND
    FRAMEWORK?
Zend Framework
Zend Framework
O que tem no Zend Framework
Zend Framework

Ferramentas na caixa

➔MVC usando Zend_Controller, Zend_View,
Zend_Layout and Zend_Form.
➔Acesso a Banco de dados usando

Zend_Db_Adapter(s) e classes como
Zend_Db_Table, Zend_Db_Select
➔Autenticação e controle de acesso com

Zend_Auth, Zend_Session e Zend_Acl.
➔i18n e l10n com Zend_Locate, Zend_Date,

Zend_Measure e Zend_Translate.
O que tem no Zend Framework
Zend Framework

… e muito mais

➔Web services com Zend_Http_Client,
Zend_Rest_Client, Zend_Feed, Zend_Service_... e
mais.
➔Comunicação para criação de documentos com

Zend_Pdf ou e-mails com Zend_Mail, Zend_Mime.
➔Busca com a implementação de

Zend_Search_Lucene.
➔Utilitários como Zend_Cache, Zend_Config,

Zend_Console_Getopt, Zend_Filter, ...
Layout da aplicação
Zend Framework
Layout da aplicação
Zend Framework

Layout padrão de URL




➔/index/index
➔/processo/incluir

➔/processo/buscar/juiz/dredd

➔Baseado em /controller/action/params
Layout da aplicação
Zend Framework

Exemplo de URL




http://www.apatada.com/blogs/artigo/id/al465wq
➔Controlador: blogs

➔Ação: artigo

➔Parâmetro: id
Layout da aplicação
Zend Framework

Estrutura de diretórios
Layout da aplicação
Zend Framework

Estrutura de diretórios



/application
➔/controllers diretório com os controladores

➔/layouts layouts padrões para a aplicação

➔/views/.. conteúdo e layout específico do

controlador
➔/models seus modelos de dados

➔Bootstrap.php tarefas de inicialização
Layout da aplicação
Zend Framework

Bootstrap.php

<?php

class Bootstrap extends
Zend_Application_Bootstrap_Bootstrap
{
   public function _initLog()
   {
      $writer = new Zend_Log_Writer_Null();

        $log = new Zend_Log();

        Zend_Registry::set('log', $log);
    }
}
Layout da aplicação
Zend Framework

/public




➔/images imagens estáticas
➔/styles folhas de estilo

➔/scripts/ javascript estático

➔/.htaccess configuração do Apache/PHP

➔index.php
Layout da aplicação
Zend Framework

.htaccess


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s
[OR]
RewriteCond %{REQUEST_FILENAME} -l
[OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Layout da aplicação
    Zend Framework

    index.php
<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') :
'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();
Demonstração!!!
Zend Framework
Código
Zend Framework

index.php
Razões para usar Zend Framework
Zend Framework
1. Você pode estender classes
como se não houvesse amanhã
Razões para usar Zend Framework
Zend Framework

2. Orientação a objetos de verdade
Razões para usar Zend Framework
Zend Framework
3. Use o que você precisa, esqueça
o resto
Razões para usar Zend Framework
Zend Framework
4. Ele deixa você fazer muitas
coisas
Razões para usar Zend Framework
Zend Framework
5. Nenhuma implementação de modelo –
escolha sua própria aventura
Razões para usar Zend Framework
Zend Framework

6. Integre com o que você quiser
Razões para usar Zend Framework
Zend Framework

7. Existem diretrizes e padrões
Razões para usar Zend Framework
Zend Framework
8. Todo código é culpado até que se prove sua
inocência
Razões para usar Zend Framework
Zend Framework

9. Comunidade e Documentação
Razões para usar Zend Framework
Zend Framework

10. Certificação e suporte
No governo
Zend Framework

Ministério das Cidades




                 http://www.capacidades.gov.br
No governo
Zend Framework
Ministério do Desenvolvimento, Indústria e
Comércio Exterior
Desde 2007, utiliza


Tem dezenas de sistemas em produção.
No governo
Zend Framework




             http://www.comexbrasil.gov.br
No governo
Zend Framework




         http://www.vitrinedoexportador.gov.br
No governo
Zend Framework




                 http://www.portaldoempreendedor.gov.br
No governo
Zend Framework

Ministério da Educação




                 http://sisu.mec.gov.br
No governo
Zend Framework

Ministério da Educação




                  http://sisfies.mec.gov.br
No governo
Zend Framework

Ministério do Meio Ambiente




                 http://www.icmbio.gov.br/sial
No governo
  Zend Framework

   Ministério da Saúde




http://integrador.datasus.gov.br/INTEGRADOR/index.php?area=01
No governo
  Zend Framework

   Editais




Ministério da Defesa
EDITAL no 002/12–MOT/DEC, de 5 de julho de 2012

Ministério da Educação
TERMO DE REFERÊNCIA TOR/FNDE/DTI/MEC Nº 037/2012
No governo
Zend Framework

Serpro

             3
No governo
Zend Framework

Serpro
No governo
Zend Framework

Application Framework
No governo
Zend Framework

Service Oriented Architecture
No governo
Zend Framework




                 Contribuições à comunidade:

                 → e-mail
                 → webconference
                 → mensageria instantânea
No governo
Zend Framework




                     http://github.com/explivre
No governo
Zend Framework




Mais de 500 mil usuários do Expresso no Brasil
No governo
Zend Framework




Arquitetura de referência para aplicações PHP
No governo
Zend Framework




Modelo de reuso de componentes
No governo
Zend Framework

Referências
●   PETI Planejamento Estratégico de Tecnologia da
    Informação do MEC
●   http://www.slideshare.net/jwenl/zend-framework-
    introduction-presentation-763045
●   http://www.pluriverso.com.br/software/zend-
    framework
●   http://www.moodox.com.br/portfolio-nossos-
    trabalhos
Contato
Zend Framework

flavio.lisboa@serpro.gov.br
Coordenação Estratégica de Tecnologia
Serpro Regional Curitiba

Weitere ähnliche Inhalte

Ähnlich wie Palestra Zend Framework CISL 2012 - ZF no Governo Federal

Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da ZendDomingos Teruel
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend FrameworkJaime Neto
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoMarcos Bezerra
 
Framework PHP Zend e MVC
Framework PHP Zend e MVCFramework PHP Zend e MVC
Framework PHP Zend e MVCEduardo Greco
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDomingos Teruel
 
Apresentação Flisol 2016
Apresentação Flisol 2016Apresentação Flisol 2016
Apresentação Flisol 2016Laryssa Muniz
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Certificação Zend Framework
Certificação Zend FrameworkCertificação Zend Framework
Certificação Zend FrameworkJaime Neto
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend FrameworkAdler Medrado
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Tirando Certificação PHP
Tirando Certificação PHPTirando Certificação PHP
Tirando Certificação PHPFernando Chucre
 
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
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop MagentoThiago Verly
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010Fabian Gehrke
 
Palestra Zend Framework FISL XI
Palestra Zend Framework FISL XIPalestra Zend Framework FISL XI
Palestra Zend Framework FISL XIFlávio Lisboa
 
Apostila Zend Framework
Apostila Zend FrameworkApostila Zend Framework
Apostila Zend FrameworkFernando Palma
 

Ähnlich wie Palestra Zend Framework CISL 2012 - ZF no Governo Federal (20)

Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
 
Framework PHP Zend e MVC
Framework PHP Zend e MVCFramework PHP Zend e MVC
Framework PHP Zend e MVC
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 
Apresentação Flisol 2016
Apresentação Flisol 2016Apresentação Flisol 2016
Apresentação Flisol 2016
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Certificação Zend Framework
Certificação Zend FrameworkCertificação Zend Framework
Certificação Zend Framework
 
MVC & Zend Framework
MVC & Zend FrameworkMVC & Zend Framework
MVC & Zend Framework
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend Framework
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Tirando Certificação PHP
Tirando Certificação PHPTirando Certificação PHP
Tirando Certificação PHP
 
Slides da palestra no Flex mania 2011
Slides da palestra no Flex mania 2011Slides da palestra no Flex mania 2011
Slides da palestra no Flex mania 2011
 
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
 
Arteccom Workshop Magento
Arteccom Workshop MagentoArteccom Workshop Magento
Arteccom Workshop Magento
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
 
Palestra Zend Framework FISL XI
Palestra Zend Framework FISL XIPalestra Zend Framework FISL XI
Palestra Zend Framework FISL XI
 
Apostila Zend Framework
Apostila Zend FrameworkApostila Zend Framework
Apostila Zend Framework
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 

Mehr von 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
 

Mehr von 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)
 

Palestra Zend Framework CISL 2012 - ZF no Governo Federal

  • 1.
  • 2. Zend Framework 20/08/2012
  • 3. Curriculum Flávio Gomes da Silva Lisboa Bacharel em Ciência da Computação com pós-graduação em Aplicações Corporativas usando Orientação a Objetos e Tecnologia Java pela Universidade Tecnológica Federal do Paraná. Já atuou como programador em empresas privadas de informática e funcionário de carreira do Banco do Brasil, onde chegou a analista na diretoria internacional. Atualmente é consultor tecnológico da Coordenação Estratégica de Tecnologia do Serviço Federal de Processamento de Dados (Serpro). Foi professor na pós-graduação da UNICID e é instrutor de cursos técnicos na Tempo Real Eventos e conteudista da TreinaWeb. Foi membro do time oficial de tradução do Zend Framework e autor de três livros sobre o tema. É contribuidor oficial do projeto Tine 2.0, suíte livre de comunicação em PHP. Tem experiência na área de Ciência da Computação, com ênfase em Software Livre, atuando principalmente nos seguintes temas: Java, PHP, Python, padrões, frameworks, MVC, DCI e objetos. Zend Framework
  • 4. Curriculum Flávio Gomes da Silva Lisboa Zend Framework
  • 5. Zend Framework Zend Framework O que é isso? Framework de aplicação web orientado a objetos, aberto, implementado em PHP 5 e licenciado sob New BSD License.
  • 6. Zend Framework /* História real enviada por Wagner */ Alonso: Cara… O que é “Orientado a objetos”? Programador: É uma forma de programar que foi criada para tentar aproximar o mundo real do mundo virtual usando propriedades, objetos, métodos, etc.. Alonso: Ahhhh tá… É que eu acho que faço orientado a objetos e nem sei… FACEPALM
  • 7. Zend Framework Zend Framework Características ➔Framework PHP 5 completamente aberto. ➔Muito fácil de usar. ➔Usa a regra 80:20 (80% das coisas que você precisa estão lá). ➔Sem configurações complexas.
  • 8. Zend Framework Zend Framework Características ➔Licença aberta BSD, como o PHP. ➔Mais de 150.000 linhas de código de alta qualidade. ➔Mais de 65% cobertas com testes de unidade. ➔Grande comunidade.
  • 9. Zend Framework Zend Framework Características Gerador de código integrado com IDEs
  • 10. Zend Framework Zend Framework Características Facilmente integrável com frameworks Javascript ●Zend Framework já vem com Dojo ●Classes Zend_Dojo e ZendX_JQuery
  • 12. Zend Framework Zend Framework Números ➔ Mais de 10 milhões de downloads ➔ Mais de 500 contribuidores ➔ Mais de 1000 páginas no Guia de Referência ➔ Mais de 500 exemplos no Guia de Referência ➔ Mais de 6 mihões de hits no Google ➔ Mais de 120 projetos baseados, estendendo ou suportando Zend Framework no SourceForge ➔ Mais de 280 projetos baseados, estendendo, ou suportando Zend Framework no Google Code ➔ Mais de 4000 relatos resolvidos no Issue Tracker
  • 13. Ele usa a estrutura MVC Zend Framework
  • 14. Ele usa a estrutura MVC Zend Framework
  • 15. Ele usa a estrutura MVC Zend Framework Modelo A representação específica do domínio da informação sobre a qual a aplicação opera.
  • 16. Ele usa a estrutura MVC Zend Framework
  • 17. Ele usa a estrutura MVC Zend Framework Visão/Visualizador Renderiza o modelo dentro de uma forma adequada para interação, tipicamente um elemento da interface com o usuário. Múltiplas visões podem existir para um único modelo para diferentes propósitos.
  • 18. Ele usa a estrutura MVC Zend Framework
  • 19. Ele usa a estrutura MVC Zend Framework Controlador Processa e responde a eventos, tipicamente ações do usuário, e pode provocar mudanças no modelo.
  • 20. O QUE TEM NO Zend Framework ZEND FRAMEWORK?
  • 23. O que tem no Zend Framework Zend Framework Ferramentas na caixa ➔MVC usando Zend_Controller, Zend_View, Zend_Layout and Zend_Form. ➔Acesso a Banco de dados usando Zend_Db_Adapter(s) e classes como Zend_Db_Table, Zend_Db_Select ➔Autenticação e controle de acesso com Zend_Auth, Zend_Session e Zend_Acl. ➔i18n e l10n com Zend_Locate, Zend_Date, Zend_Measure e Zend_Translate.
  • 24. O que tem no Zend Framework Zend Framework … e muito mais ➔Web services com Zend_Http_Client, Zend_Rest_Client, Zend_Feed, Zend_Service_... e mais. ➔Comunicação para criação de documentos com Zend_Pdf ou e-mails com Zend_Mail, Zend_Mime. ➔Busca com a implementação de Zend_Search_Lucene. ➔Utilitários como Zend_Cache, Zend_Config, Zend_Console_Getopt, Zend_Filter, ...
  • 26. Layout da aplicação Zend Framework Layout padrão de URL ➔/index/index ➔/processo/incluir ➔/processo/buscar/juiz/dredd ➔Baseado em /controller/action/params
  • 27. Layout da aplicação Zend Framework Exemplo de URL http://www.apatada.com/blogs/artigo/id/al465wq ➔Controlador: blogs ➔Ação: artigo ➔Parâmetro: id
  • 28. Layout da aplicação Zend Framework Estrutura de diretórios
  • 29. Layout da aplicação Zend Framework Estrutura de diretórios /application ➔/controllers diretório com os controladores ➔/layouts layouts padrões para a aplicação ➔/views/.. conteúdo e layout específico do controlador ➔/models seus modelos de dados ➔Bootstrap.php tarefas de inicialização
  • 30. Layout da aplicação Zend Framework Bootstrap.php <?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { public function _initLog() { $writer = new Zend_Log_Writer_Null(); $log = new Zend_Log(); Zend_Registry::set('log', $log); } }
  • 31. Layout da aplicação Zend Framework /public ➔/images imagens estáticas ➔/styles folhas de estilo ➔/scripts/ javascript estático ➔/.htaccess configuração do Apache/PHP ➔index.php
  • 32. Layout da aplicação Zend Framework .htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
  • 33. Layout da aplicação Zend Framework index.php <?php // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();
  • 36. Razões para usar Zend Framework Zend Framework 1. Você pode estender classes como se não houvesse amanhã
  • 37. Razões para usar Zend Framework Zend Framework 2. Orientação a objetos de verdade
  • 38. Razões para usar Zend Framework Zend Framework 3. Use o que você precisa, esqueça o resto
  • 39. Razões para usar Zend Framework Zend Framework 4. Ele deixa você fazer muitas coisas
  • 40. Razões para usar Zend Framework Zend Framework 5. Nenhuma implementação de modelo – escolha sua própria aventura
  • 41. Razões para usar Zend Framework Zend Framework 6. Integre com o que você quiser
  • 42. Razões para usar Zend Framework Zend Framework 7. Existem diretrizes e padrões
  • 43. Razões para usar Zend Framework Zend Framework 8. Todo código é culpado até que se prove sua inocência
  • 44. Razões para usar Zend Framework Zend Framework 9. Comunidade e Documentação
  • 45. Razões para usar Zend Framework Zend Framework 10. Certificação e suporte
  • 46. No governo Zend Framework Ministério das Cidades http://www.capacidades.gov.br
  • 47. No governo Zend Framework Ministério do Desenvolvimento, Indústria e Comércio Exterior Desde 2007, utiliza Tem dezenas de sistemas em produção.
  • 48. No governo Zend Framework http://www.comexbrasil.gov.br
  • 49. No governo Zend Framework http://www.vitrinedoexportador.gov.br
  • 50. No governo Zend Framework http://www.portaldoempreendedor.gov.br
  • 51. No governo Zend Framework Ministério da Educação http://sisu.mec.gov.br
  • 52. No governo Zend Framework Ministério da Educação http://sisfies.mec.gov.br
  • 53. No governo Zend Framework Ministério do Meio Ambiente http://www.icmbio.gov.br/sial
  • 54. No governo Zend Framework Ministério da Saúde http://integrador.datasus.gov.br/INTEGRADOR/index.php?area=01
  • 55. No governo Zend Framework Editais Ministério da Defesa EDITAL no 002/12–MOT/DEC, de 5 de julho de 2012 Ministério da Educação TERMO DE REFERÊNCIA TOR/FNDE/DTI/MEC Nº 037/2012
  • 59. No governo Zend Framework Service Oriented Architecture
  • 60. No governo Zend Framework Contribuições à comunidade: → e-mail → webconference → mensageria instantânea
  • 61. No governo Zend Framework http://github.com/explivre
  • 62. No governo Zend Framework Mais de 500 mil usuários do Expresso no Brasil
  • 63. No governo Zend Framework Arquitetura de referência para aplicações PHP
  • 64. No governo Zend Framework Modelo de reuso de componentes
  • 65. No governo Zend Framework Referências ● PETI Planejamento Estratégico de Tecnologia da Informação do MEC ● http://www.slideshare.net/jwenl/zend-framework- introduction-presentation-763045 ● http://www.pluriverso.com.br/software/zend- framework ● http://www.moodox.com.br/portfolio-nossos- trabalhos