Este documento apresenta um mini-curso sobre o desenvolvimento de aplicações com o framework Zend. Resume os principais pontos sobre a experiência do apresentador com PHP, introduz os conceitos e benefícios do modelo MVC e do Zend Framework, e demonstra como iniciar um projeto de exemplo usando este framework.
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvendo Aplicações com Zend Framework
1. Mini-curso desenvolvendo
aplicações com Zend Framework
Domingos Teruel
Analista de Software
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
2. Experiência profissional
• Tecnólogo em Processamento de dados,
especialista em Interfaces de sistemas;
• Atua no desenvolvimento e implementação
de sistemas web com software livre;
• Desenvolvedor PHP desde 1999;
• Analista de software de ITI em Lightcomm
Tecnologia e Serviços
• Consultor em tecnologias móvel
(especialista em ambiente Blackberry)
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
3. Neste mini-curso
• Por que usar o Zend Framework
• O que o Zend Framework é capaz de fazer
• A filosofia por detrás do Zend Framework
• Desenvolvimento de aplicativos web dentro do
paradigma MVC
• Uma visão do desenvolvimento de aplicativos usando
o Zend Framework
• Como preparar o ambiente para o desenvolvimento
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
4. Introdução
• Estrutura típica em sites web PHP
Cabeçalho HTML
Conexão com
Banco de dados A organização de um arquivo
PHP típico, mescla de código
HTML e PHP de forma linear à
Início da página medida que o arquivo é criado.
HTML
Consulta ao
Banco de dados
Tabela HTML +
PHP
Rodapé HTML
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
5. Introdução
• Conceito do Modelo-Visão-Controlador
Arquivo de
Bootstrap:index.php
Uma aplicação MVC
(configuração e conexão) típica separa o código
de uma aplicação em
responsabilidades
Arquivo de controlodor separadas
(Lógica da aplicação)
Arquivo do Modelo
(consultas a banco de dados)
Arquivo de template
da visão
(HTML)
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
6. Por que escolher o
Zend Framework
• Introdução de um conjunto padronizado de componentes (APIs)
• Facilidade de desenvolvimento
• Recursos fundamentais
• Tudo na caixa (conceito de box)
• Design Moderno
• Fácil de aprender
• Completa documentação
• Desenvolvimento simplificado
• Desenvolvimento rápido
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
7. Tudo na caixa
MVC Autenticação e acesso
Comunicação entre
Internacionalização
Aplicações
Serviços Web Princiapl (core)
Existem vários componentes no ZF,
entretanto podemos agrupá-los nestas seis
categorias para facilitar a referência.
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
8. E mais
• Design Moderno
• PHP 5
• Padrões de design (design patterns)
• Flexibilidade
• O Framework reconhece o “jeito php”
• Baixa dependência (acoplação)
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
9. E mais
• Fácil de aprender
• Modulado
• Documentação completa
• Documentação incluída (http://
framework.zend.com/manual)
• Desenvolvimento simplificado
• Extraí ao máximo os pontos fortes do PHP
• codifique só o necessário
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
10. E mais
• Desenvolvimento rápido
• Facilita a continuidade
• Adição de novas funcionalidades
• Menos é mais
• Chega de tanta configuração
• Código estruturado é mais fácil de ser mantido
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
11. O que há no ZF
MVC Autenticação e acesso
Zend_Controller Zend_Acl
Zend_Application Zend_Auth
Zend_Layout Zend_Session
Zend_View Zend_OpenId
Zend_InfoCard
O Zend
Framework provê
Internacionalização
Zend_Currency
Comunicação entre aplicações
Zend_Http_Client
vários componentes
Zend_Date Zend_Http_Server que incluem tudo o que
Zend_Locale Zend_Json
Zend_View Zend_Ldap é necessário para
Zend_Translate Zend_Rest
Zend_TimeSync
desenvolver um
Zend_XmlRpc aplicação
profissional.
Serviços Web Principal
Zend_Feed Zend_Db
Zend_GData Zend_Cache
Zend_Service_* Zend_Config
Zend_Filter
Zend_Form
Zend_Log
Zend_Mail
Zend_Memory
Zend_Pdf
Zend_Registry
Zend_Search
Zend_Uri
Zend_Validate
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
12. Componentes do MVC
• Completo sistema de MVC
• O Modelo (Zend_Db e Zend_Service)
• A visão (Zend_View)
• O controlador (Zend_Controller)
• Design do controlador Frontal (Front
Controller design pattern)
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
13. O Ambiente
• Ambiente de desenvolvimento LAMP (Linux
Apache Mysql PHP)
• Software pré-requisito
• Apache Web Server 2.2.x
• Módulo Rewrite habilitado
• suporte a mudança de ambiente (htaccess)
• PHP 5.2.x
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
14. Obtendo o Zend
Framework
• Download direto de http://framework.zend.com/download/latest
• Os pacotes
• ZendServer Community Edition
• Full Package
• Pacote completo com demos, apis experimentais, Dojo Toolkit e
documentação
• Minimal Package
• Pacote standard das bibliotecas
• Subversion
• svn co http://framework.zend.com/svn/framework/standard/
trunk
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
15. Usando o zf-tool para
iniciar um projeto
• desde a versão 1.7
• configurando o zf-tool
• testando o zf-tool
• iniciando um projeto
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
16. Criando nossa aplicação
de exemplo
• Preparando nosso site de exemplo
• criando o projeto
• definindo o banco de dados
Campo Tipo Nulo Observações
id integer Não auto-incremento
artista varchar(100) Não
disco varchar(100) Não
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais
17. Aplicação de Exemplo
• Para nossa aplicação de exemplos teremos a
seguinte estrutura de páginas
Página inicial contento uma
Página Inicial
listagem dos últimos registro
Adicionar novo artista Adicionar um novo registro
Editar artista Editar os dados de um artistia
Apagar artista Apagar registro de artista
Belo Horizonte, outubro de 2009
2º Encontro dos usuários de PHP de Minas Gerais