Zend Framework
Felipe
Ferreri Tonello
Índice





PHP
Zend Framework
Instalação
Configuração
Desenvolvimento
PHP





Linguagem de programação de
computadores interpretada
Livre
Utilizada para gerar conteúdo dinâmico na
Web
Fácil aprendizado
Suporte a Orientação de Objetos(POO)
Aspectos negativos PHP





Repetição de códigos
Layout e Lógica em mesmo arquivo
Não existe padrão de programação
Desenvolvimento lento de sistemas
Díficil manutenção
O que é um Framework



É um conjunto de classes com objetivo de
reutilização de um design, provendo um guia
para uma solução de arquitetura em um
domínio específico de software
conjunto de classes(bibliotecas) específicas
Facilita nossa vida
O que é o ZF

Zend Framework é um simples, poderoso,
open-source software framework para o PHP
5 designado a eliminar o tédio de códificar e
dar foco ao “peixe grande”. Uma dessas
facilidades é o uso do padrão Model-ViewController(MVC), fazendo seu código ser
mais limpo e facil de manutenção.
MVC


Model, View and Controller(Modelo, Visão e
Controladores)
Separar o sistema em:



Controllers: Controlam todo o sistema, entradas
e saida de dados, comunicação com BD e assim
por diante
Viewers: São as saídas de dados, templates
Models: Classes e componentes que o
desenvolvedor queira adaptar ao framework
Zend Framework








Segue o padrão MVC
Mantido pela Zend
Muito estável, realizado uma bateria de
testes
Comunidade atíva, crescendo
Wiki de desenvolvimento e propostas
Licença segura para empresas(New BSD)
Templates
Validações
Requisitos para o ZF




>=PHP 5.1.4 (com o módulo pdo_mysql
habilitado)
>=Apache HTTP Server 2.0(recomendado)
Zend Framework 1.0.1 (versão atual)
MySQL 5.0+, SQLite, PostgreSQL, ODBC e
AdoDB
Instalação



Fazer download no:
http://framework.zend.com/download
Descompactar: tar zxvf ZendFramework1.0.1.tar.gz -C ~/
Copiar a pastar Zend(dentro de library) para
a sua pasta “lib”: cp -Rfv Zend/
documentRoot_do_apache/ZF-tutorial/lib/
Padrão de diretórios
Configuração do Apache

Habilitar o rewrite_module,
descomentar(retirar o #) das linhas:
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Definir o AccessFileName (pode ser no final
do arquivo):
AccessFileName .htaccess

Setar a opção AllowOverride como All:
<directory>
Options FollowSymLinks Includes
AllowOverride All
</directory>
Criando o Bootstrapping






E para isso precisamos criar alguns arquivos
.htaccess.
ZF-tutorial/.htaccess
ZF-tutorial/publico/.htaccess
ZF-tutorial/app/.htaccess
ZF-tutorial/lib/.htaccess
Esse esquema de bootstrapping é
recomendação dos desenvolvedores do ZF,
ok? Motivo de segurança.
Criando o nosso
index.php(bootstrap file)

ZF-tutorial/index.php
<?php
error_reporting(E_ALL|E_STRICT); PHP.ini)
setlocale (LC_ALL, ‘pt_BR’);
date_default_timezone_set(‘America/Sao_Paulo’);
set_include_path(‘.’.PATH_SEPARATOR.‘./lib’
.PATH_SEPARATOR.‘./app/models/’
.PATH_SEPARATOR.get_include_path());
include "Zend/Loader.php";
Zend::loadClass(‘Zend_Controller_Front’);
$controlador = Zend_Controller_Front::getInstance();
$controlador->throwExceptions(true);
$controlador->setControllerDirectory(‘./app/controllers’);
$controlador->dispatch();
// sem fechar tag php ?>
Entendendo o
Zend_Controller_Front
O ZF usa um sistema de Controllers(Controladores) e
Actions(Ações). E isso é setado diretamente na
url(lembra do bootstrapping?). Como?
Usando o nosso exemplo, no formato
http://localhost/ZF-tutorial/index/teste o index é o
Controller e o teste é o Action. Outro exemplo,
http://localhost/ZF-tutorial/foo/bar o foo é o
Controller e o bar é o Action.
E quando você não coloca nada? Exemplo,
http://localhost/ZF-tutorial/ o Zend_Controller_Front
considera como index o Controller e index a
Action.
Criando nosso
IndexController.php

ZF-tutorial/app/controllers/IndexController.php
<?php
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->titulo = ‘Primeiro Tutorial de Zend Framework’;
$this->view->detalhe = ‘Olá Mundo!’;
}
}
//sem fechar tag php ?> denovo
Padrão nos Controllers e
Actions


Atenção: Sempre o controller deve levar
esse padrão NomeController.php e a classe
com o mesmo nome do arquivo. A primeira
letra sempre em maiúsculo e o resto
minúsculo.
Já os Actions também deve levar esse
padrão nomeAction(), sempre minúsculo.
Criando nossos Views

Para criar, precisamos acessar a pasta
scripts que está no ZF-tutorial/app/views/. Lá
vamos criar uma pasta para cada Controller
nosso, no nosso caso iremos criar uma pasta
chamada index(por causa do
IndexController). Todos os templates para o
IndexController devem estar nessa pasta. O
mais legal é que o nome do template leva o
nome da action.
Criando nossos Views

ZF-tutorial/app/views/scripts/index/index.phtml
<html>
<head>
<title><?php echo $this->escape($this->titulo); ?></title>
</head>
<body>
<?php echo $this->escape($this->detalhe); ?>
</body>
</html>
Agora vamos testar nossa aplicação.
Acesse o http://localhost/ZF-tutorial e depois tente
http://localhost/ZF-tutorial/index/index
Homework



Criar um zfAction(), no IndexController, com
seu respectivo viewer.
http://localhost/ZF-tutorial/index/zf
Iaí, deu certo?
Aplicação proposta

Foi solicitado de um site para agregar
informações de uma imobiliária. Os admins
poderiam vizualizar, acessar e editar a venda
de imóveis. Os clientes poderiam cadastrarse como interessados em algum imóvel
Aplicação proposta
Aplicação proposta

Atenção: Toda chave primária das tabelas
devem levar o nome 'id'. Por pardão o ZF
usa 'id', mas isso pode ser modificado
posteriormente.
Aplicação proposta

Agora vamos desenvolver a aplicação prosta
Autor




Nome: Felipe Ferreri
Tonello
4 anos de experiencia
com PHP
Desenvolvimento com
GNU/Linux
Artigos e tutoriais:
 felipetonello.com
 mxstudio.com.br
 webtutoriais.com

gnulinuxbrasil.org
Download

Zend Framework