2. Quem sou eu?
Introdução
Motivação
O que é Zend Framework?
Vantagens
Componentes
Model-View-Controller
Exemplos de utilização
3. Diego Tremper
Zend Certified Engineer
Entusiasta PHP
Estudante
Atualmente trabalha como desenvolvedor
para ADP Brasil
4. Frameworks vs. Bibliotecas
Bibliotecas : Conjunto de classes/funções que possuem
abstrações de código reutilizáveis.
Framework: Quase igual, porém, utiliza um princípio
conhecido como Inversão de Controle.
▪ Determina os fluxos de chamadas de sua aplicação
5. Frameworks tornam o desenvolvimento mais
rápido
Não há a necessidade de reinventar a roda
Que problema você pretende resolver? O do seu
cliente ou o seu?
Garantem entregas em períodos menores ($$$?)
6. Framework escrito em PHP 5
Concebido em 2005
Open source
Sob New BSD Licence
Usado em muitos projetos web
7. Filosofia
Extrema Simplicidade
Sem Xmls complexos
Arquitetura “use o que precisar”
Frequentes interações com a comunidade
8. Arquitetura flexível
Baixo acoplamento entre os componentes
Treimento oficial (Zend)
Certificação oficial (Zend)
Consultoria (Zend)
Farta documentação
9. Integração com frameworks JavaScript
Dojo, JQuery
Comunidade forte
Wiki
Issue Tracker
Listas de email
Fórums
10.
11.
12. Padrão descrito em 1979
Model: RN, Dados
View: Interface com usuário
Controller: Processamento e controle dos eventos
ZF possui a implementação concreta deste
padrão
13. Mapeamento baseado em partes da URL
http://www.example.org/feed/exibir/var/value
Controller : FeedController
Action : FeedController::exibirAction()
Parametros : [var:value]
14. Possibilidade de implementar rotas
customizadas
Possui modulos de injeção de dependência
Através de Plugins, Action Helpers e View Helpers
Possui interfaces bem definidas para
possibilitar a customização
15. Como funciona?
Através de uma configuração no mod_rewrite do
apache (.htaccess ) todas as requisições são
enviadas a um arquivo de bootstrap
Este arquivo inicializa o Front Controller que inicia
o roteamento da chamada para o controller que a
atenderá
16. Estrutura de diretórios
application/
controllers/ diretório dos controllers
IndexController.php
models/
views/
scripts/
index/ diretório de view do controller IndexController
index.phtml script de view da action indexAction
helpers/
filters/
html/
.htaccess
index.php bootstrap
17. Como funciona?
Ex.: .htacces
RewriteEngine on
# direciona todos requests para index.php
# com exceção de arquivos com extenção
# .js, .ico, .gif, .jpg, .png, .css
RewriteRule !.(js|ico|gif|jpg|png|css)$ index.php
18. Como funciona?
Ex.: index.php
<?php
error_reporting( E_ALL | E_STRICT );
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
// diretório dos controllers
$appDir = dirname(__FILE__) . '/application';
// inicializa processo da requisição
Zend_Controller_Front::run(quot;$appDir/controllersquot;);
19. Controller
Os controllers devem inicializar as classes que
processam as lógicas de negócio
Devem atribuir os valores necessários para os scripts
de view
Também podem fazer desvio de chamadas,
delegando o trabalho a outros controllers/actions
20. Controller
Ex.: http://example.org/index/index/nome/Diego
class IndexController extends Zend_Controller_Action {
public function init() {
// método invocado antes de exibirAction()
}
public function indexAction() {
// inicializa dados que serão utilizados
$this->view->saudacao= ‘Bem vindo’;
$this->view->nome=
$this->getRequest-getParam(‘nome’);
}
}
21. View
Scripts de view escritos utilizando php + html
Apenas lógicas de apresentação devem estar
presentes nestes scripts
É possivel a criação/utilização de Helpers para o
auxílio da renderização dos dados
24. Zend Studio for Eclipse
Paga!
Possui perspectivas próprias para criação de projetos utilizando
o framework
Também é possivel utilizar qualquer outro editor de texto
Vi
Textpad
PSPad Editor
PDT
25. Reference Guide
▪ http://www.zendframework.com/docs/
Comunidade Brasileira
▪ http://www.zfbrasil.com/forum/
Livro escrito por Flávio Lisboa
▪ http://www.novateceditora.com.br/livros/zend/
26. Zend Developer Zone
▪ http://devzone.zend.com
Guide to Programming with Zend Framework
▪ http://www.zfguide.com/