66

Palestra Zend Framework CISL 2012 - ZF no Governo Federal

Embed Size (px)

DESCRIPTION

Palestra sobre Zend Framework proferida em transmissão do Comitê Técnico de Implementação de Software Livre no Governo Federal. Faz uma abordagem geral sobre Zend Framework com informações sobre uso no governo brasileiro.

Citation preview

Zend Framework

20/08/2012

Zend Framework

Flávio Gomes da Silva LisboaBacharel 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.

Curriculum

Zend Framework

Flávio Gomes da Silva Lisboa

Curriculum

Zend Framework

O que é isso?

Zend Framework

Framework de aplicação web orientado a objetos, aberto, implementado em PHP 5 e licenciado sob

New BSD License.

/* 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

Zend Framework

➔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

Características

Zend Framework

➔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

Características

Zend Framework

Gerador de código integrado com IDEs

Zend Framework

Características

Zend Framework

Facilmente integrável com frameworks Javascript

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

Zend Framework

Usuários

Zend Framework

Zend Framework

Números

Zend Framework

➔ 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

Zend Framework

Ele usa a estrutura MVC

Zend Framework

Ele usa a estrutura MVC

Zend Framework

Modelo

Ele usa a estrutura MVC

A representação específica do domínio da informação sobre a qual a aplicação opera.

Zend Framework

Ele usa a estrutura MVC

Zend Framework

Visão/Visualizador

Ele usa a estrutura MVC

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.

Zend Framework

Ele usa a estrutura MVC

Zend Framework

Controlador

Ele usa a estrutura MVC

Processa e responde a eventos, tipicamente ações do usuário, e pode provocar mudanças no modelo.

Zend FrameworkO QUE TEM NO ZEND

FRAMEWORK?

Zend Framework

Zend Framework

Zend Framework

Ferramentas na caixa

O que tem no Zend Framework

➔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.

Zend Framework

… e muito mais

O que tem no Zend Framework

➔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, ...

Zend Framework

Layout da aplicação

Zend Framework

Layout padrão de URL

Layout da aplicação

➔/index/index➔/processo/incluir➔/processo/buscar/juiz/dredd➔Baseado em /controller/action/params

Zend Framework

Exemplo de URL

Layout da aplicação

http://www.apatada.com/blogs/artigo/id/al465wq➔Controlador: blogs➔Ação: artigo➔Parâmetro: id

Zend Framework

Estrutura de diretórios

Layout da aplicação

Zend Framework

Estrutura de diretórios

Layout da aplicação

/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

Zend Framework

Bootstrap.php

Layout da aplicação

<?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);}

}

Zend Framework

/public

Layout da aplicação

➔/images imagens estáticas➔/styles folhas de estilo➔/scripts/ javascript estático➔/.htaccess configuração do Apache/PHP➔index.php

Zend Framework

.htaccess

Layout da aplicação

RewriteEngine OnRewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]RewriteRule ^.*$ index.php [NC,L]

Zend Framework

index.php

Layout da aplicação

<?php

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

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

// Ensure library/ is on include_pathset_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();

Zend Framework

Demonstração!!!

Zend Framework

index.php

Código

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

Razões para usar Zend Framework

Zend Framework

No governo

Ministério das Cidades

http://www.capacidades.gov.br

Zend Framework

No governo

Ministério do Desenvolvimento, Indústria e Comércio ExteriorDesde 2007, utiliza

Tem dezenas de sistemas em produção.

Zend Framework

No governo

http://www.comexbrasil.gov.br

Zend Framework

No governo

http://www.vitrinedoexportador.gov.br

Zend Framework

No governo

http://www.portaldoempreendedor.gov.br

Zend Framework

No governo

Ministério da Educação

http://sisu.mec.gov.br

Zend Framework

No governo

Ministério da Educação

http://sisfies.mec.gov.br

Zend Framework

No governo

Ministério do Meio Ambiente

http://www.icmbio.gov.br/sial

Zend Framework

No governo

Ministério da Saúde

http://integrador.datasus.gov.br/INTEGRADOR/index.php?area=01

Zend Framework

No governo

Editais

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

Ministério da EducaçãoTERMO DE REFERÊNCIA TOR/FNDE/DTI/MEC Nº 037/2012

Zend Framework

No governo

Serpro

3

Zend Framework

No governo

Serpro

Zend Framework

No governo

Application Framework

Zend Framework

No governo

Service Oriented Architecture

Zend Framework

No governo

Contribuições à comunidade:

→ e-mail→ webconference→ mensageria instantânea

Zend Framework

No governo

http://github.com/explivre

Zend Framework

No governo

Mais de 500 mil usuários do Expresso no Brasil

Zend Framework

No governo

Arquitetura de referência para aplicações PHP

Zend Framework

No governo

Modelo de reuso de componentes

Zend Framework

No governo

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

Zend Framework

Contato

[email protected]

Coordenação Estratégica de Tecnologia

Serpro Regional Curitiba