Upload
flavio-lisboa
View
850
Download
3
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
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
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
Facilmente integrável com frameworks Javascript
●Zend Framework já vem com Dojo●Classes Zend_Dojo e ZendX_JQuery
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
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
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
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 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 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
/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
1. Você pode estender classes como se não houvesse amanhã
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
8. Todo código é culpado até que se prove sua inocência
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.vitrinedoexportador.gov.br
Zend Framework
No governo
http://www.portaldoempreendedor.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
Contribuições à comunidade:
→ e-mail→ webconference→ mensageria instantânea
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
Coordenação Estratégica de Tecnologia
Serpro Regional Curitiba