Zend Framework

Preview:

Citation preview

Aprenda a preocupar-se com seu negócio utilizando-o

Quem sou eu?

Introdução

Motivação

O que é Zend Framework?

Vantagens

Componentes

Model-View-Controller

Exemplos de utilização

Diego Tremper

Zend Certified Engineer

Entusiasta PHP

Estudante

Atualmente trabalha como desenvolvedor

para ADP Brasil

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

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 ($$$?)

Framework escrito em PHP 5

Concebido em 2005

Open source

Sob New BSD Licence

Usado em muitos projetos web

Filosofia

Extrema Simplicidade

Sem Xmls complexos

Arquitetura “use o que precisar”

Frequentes interações com a comunidade

Arquitetura flexível

Baixo acoplamento entre os componentes

Treimento oficial (Zend)

Certificação oficial (Zend)

Consultoria (Zend)

Farta documentação

Integração com frameworks JavaScript

Dojo, JQuery

Comunidade forte

Wiki

Issue Tracker

Listas de email

Fórums

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

Mapeamento baseado em partes da URL

http://www.example.org/feed/exibir/var/value

Controller : FeedController

Action : FeedController::exibirAction()

Parametros : [var:value]

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

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á

Estrutura de diretórios

application/controllers/ diretório dos controllers

IndexController.phpmodels/views/

scripts/index/ diretório de view do controller IndexController

index.phtml script de view da action indexActionhelpers/filters/

html/.htaccessindex.php bootstrap

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, .cssRewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Como funciona?

Ex.: index.php

<?phperror_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çãoZend_Controller_Front::run("$appDir/controllers");

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

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

}

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

View

Ex.: views/scripts/index/index.phtml

<html><body>…

<h1><?= $this->saudacao; ?> <?= $this->nome; ?></h1>...</body></html>

View

Ex.: views/scripts/index/index.phtml

<html><body>…

<h1><?= $this->saudacao; ?> <?= $this->nome; ?></h1>...</body></html>

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

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/

Zend Developer Zone

▪ http://devzone.zend.com

Guide to Programming with Zend Framework

▪ http://www.zfguide.com/

Perguntas?

Obrigado!!!

Contato: diegotremper@gmail.com

LinkedIn: http://www.linkedin.com/in/diegotremper

Blog: http://www.diegotremper.com

Zend Framework: http://framework.zend.com /

PHP: http://www.php.net

Zend Studio: http://www.zend.com/en/products/studio/

Zend: http://www.zend.com