palestra zend framework phpsc conf 2010

94
Zend Framework: Reuso e padrões para fácil manutenção Flávio Gomes da Silva Lisboa www.fgsl.eti.br

Upload: flavio-lisboa

Post on 22-Apr-2015

1.053 views

Category:

Technology


0 download

DESCRIPTION

Palestra proferida na 2ª edição da PHPSC Conf, na SOCIESC, na cidade de Joinville.

TRANSCRIPT

Page 1: Palestra Zend Framework PHPSC Conf 2010

Zend Framework: Reuso e padrões para fácil manutenção

Flávio Gomes da Silva Lisboawww.fgsl.eti.br

Page 2: Palestra Zend Framework PHPSC Conf 2010

Quem sou eu?

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

Page 3: Palestra Zend Framework PHPSC Conf 2010

Agenda:

1)Você tem problemas (isso você já sabia)2)Os problemas são mais graves do que você pensa3)Eles vão piorar com o tempo4)Você está perdido, ferrado, lascado, etc...5)POG e XGH não vão te ajudar

Fonte: tokyostudent.blogspot.com

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

Page 4: Palestra Zend Framework PHPSC Conf 2010

Agenda:

Mas existe esperança!

Fonte: eupodiatamatando.com

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

Page 5: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O QUE É SOFTWARE?

Page 6: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O QUE É SOFTWARE?

CÓDIGO-FONTE DOCUMENTAÇÃO

Fonte: downloads.open4group.com Fonte: rhjunior.com.br

Page 7: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O QUE É SOFTWARE?

CÓDIGO-FONTE DOCUMENTAÇÃO

Page 8: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENVOLVIMENTO DE SOFTWARE DESORGANIZADO

Page 9: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENVOLVIMENTO DE SOFTWARE DESORGANIZADO

O SOBRINHO

Fonte: apeedpedroiv.no.sapo.pt

Page 10: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENVOLVIMENTO DE SOFTWARE DESORGANIZADO

PLANO DE CARREIRA DO SOBRINHO

CCF?B!

POG

XGH

JÚNIOR

PLENO

SÊNIOR

PESQUISA

PENSA

ATIRA!

Page 11: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENVOLVIMENTO DE SOFTWARE DESORGANIZADO

SE O SOFTWARE FOSSE MATERIAL, O QUE O SOBRINHO NÃO FARIA...

Fonte: pelamordedeus.com.br

Page 12: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENVOLVIMENTO DE SOFTWARE ORGANIZADO

Fonte: anarquiweb.com

Page 13: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENVOLVIMENTO DE SOFTWARE ORGANIZADO

Fonte: anarquiweb.com

Page 14: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DESENHAR RETÂNGULOS É LEGAL...

Fonte: ciqs.fe.up.pt

Page 15: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

… MAS A REALIDADE É ESTA:

“A construção [de código] toma normalmente de 30% a 80% do tempo total [de desenvolvimento]”.

Steve McConnel (2005)

Page 16: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

CÓDIGO-FONTE É UMA PRAGA!

Fonte: planetaignis.blogspot.com

Page 17: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

CÓDIGO-FONTE É ERVA DANINHA!

Page 18: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

CÓDIGO-FONTE É COELHO NA AUSTRÁLIA!

Fonte: educ.fc.ul.pt

Page 19: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

FATOS:

DESENVOLVER = GERAR CÓDIGO-FONTE

+ CÓDIGO-FONTE → + COMPLEXO

+ COMPLEXO → + DIFÍCIL DE MANTER

+ DIFÍCIL DE MANTER → + CARO

Page 20: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

FATOS:

DIFÍCIL DE MANTER => DEMORA PRA MUDAR

TEMPO = DINHEIRO

SE VOCÊ NÃO TEM TEMPO, LOGOVOCÊ NÃO TEM DINHEIRO

Fonte: castelodosaprendizes.com Fonte: titoreccocom.blogspot.com

Page 21: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

PHP NAS MÃOS CERTAS...

Fonte: asagastarwars.site90.com

Page 22: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

PHP NAS MÃOS ERRADAS...

Fonte: foreignerinformosa.typepad.com

Page 23: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Forma inadequada de uso algumacoisa.php<html><body><?phpwhile($entrarNaCabeca == false){echo “Vou escrever código reusável”;}?></body></html>

Page 24: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Palavras-chave:

Manutenção

Reuso

Fonte: lucianomende.blogspot.com Fonte: silverferramentas.com.br

Page 25: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Padrão de Projeto

Page 26: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Cada padrão descreve um problema que ocorre repetidamente em nosso ambiente...

Page 27: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Cada padrão

descreve o núcleo da solução para esse

problema...

Page 28: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

… de forma tal que você pode usar

essa solução

milhões de vezes...

Page 29: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

… sem nunca

fazê-la da mesma forma duas vezes.

* Christopher Alexander

Page 30: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

● Um modelo de solução comprovada● Uma linguagem comum para

desenvolvedores● Útil para compreender frameworks

O QUE UM PADRÃO DE PROJETO É

SOLUÇÕES REUTILIZÁVEIS

Page 31: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

● A solução para todos os problemas de projeto

● Implementação final● Panacéia

O QUE UM PADRÃO DE PROJETO NÃO É

Page 32: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

“Frameworks são o mais alto nível de reuso.Eles tentam destilar o projeto de software e identificar as abstrações-chave para resolver um problema”.Erich Gamma em entrevista a Bill Venners

Page 33: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

“Construir um framework é um alto risco e um investimento significativo”.Erich Gamma em entrevista a Bill Venners

Page 34: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend Framework

“Se você realmente quer assumir o risco de construir frameworks, você quer ter os menores e mais focados frameworks que você também pode provavelmente tornar opcionais”.Erich Gamma em entrevista a Bill Venners

Page 35: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O que é Zend Framework?

Page 36: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Título da ApresentaçãoUm framework completo?

Uma biblioteca de componentes?

Page 37: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

As duas coisas

Fonte: 0001coisas.blogspot.com

Page 38: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Ou até mais que isso

Zend Framework

Page 39: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

MVCController

View DataDatabase

XML

Search

PDF

i18nLocale

Translate

Measure

Date

Calendar

Currency

Web ServicesFeed

Client

Server

Services

Core

Config

Log

Registry

Session

CacheSecurityAcl

Auth

Filter

Validate

Page 40: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend Framework é uma biblioteca de

componentes fracamente acoplados.

Page 41: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Pra quem só quer trocar uma peça e não o carro inteiro...

Fonte: info.abril.com.br

Page 42: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Arquitetura Self-Service

Page 43: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Outrosframeworkspodem usar componentesdo Zend

Page 44: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend Framework é um framework

extensível e flexível.

Fonte: emule.com.br Fonte: online-naweb.blogspot.com

Page 45: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

ZF pode usaroutros frameworkse componentescomo se fossem realmente partedele

Page 46: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Mais do que isso!

A arquitetura do Zend Framework aproveita o modelo de negócio de software livre e evita forks!

Page 47: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

1. TENHO UM PROBLEMA!

5. RESOLVI O PROBLEMA!(PELO MENOS AGORA...)

2. USO A COMUNIDADE 3. NÃO POSSO ESPERAR!

4. FAÇO UM FORK (OU POG)

6. E SE TIVER QUE FAZER MANUTENÇÃO?

METODOLOGIA “NÃO QUERO PAGAR E TENHO PRAZO PRA ENTREGAR”

Page 48: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

1. TENHO UM PROBLEMA! 2. USO A COMUNIDADE 3. NÃO POSSO ESPERAR!

METODOLOGIA “O ZEN DO ZEND FRAMEWORK”

5. RESOLVI O PROBLEMADIREITO!

4. ESTENDO, USANDO A INTERFACE PADRÃO, E SUBMETO PRA COMUNIDADE

6. O QUE FOI PRA COMUNIDADE SERÁ TESTADO, APERFEIÇOADO E PODEREI UTILIZAR SEM CAUSAR IMPACTO NA APLICAÇÃO!

Page 49: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

$al = Zend_Loader_Autoloader::getInstance();$al->registerNamespace('Serpro_');$al->registerNamespace(array('Celepar_', 'Dataprev_', 'MEC_'));

SOLUÇÃO IMEDIATA

COMUNIDADE

SOLUÇÃO APERFEIÇOADA

$al = Zend_Loader_Autoloader::getInstance();$al->registerNamespace('Serpro_');$al->registerNamespace(array('Celepar_', 'Dataprev_', 'MEC_'));

Page 50: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Título da ApresentaçãoParceiros e Investidores

Page 51: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Licença new BSD

CLA – Contributor License Agreement

Page 52: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Características e Funcionalidades

Page 53: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

MVC

Controller

View

Page 54: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Controller

View Model

O Controlador observa a Visão

Page 55: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O Controlador obtém dados da Visão

Controller

View Model

Page 56: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O Controlador atualiza o Modelo

Controller

View Model

Page 57: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O Modelo notifica a Visão

Controller

View Model

Page 58: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

A Visão obtém os dados do Modelo

Controller

View Model

Page 59: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

CLIENT

SERVER

HTTPREQUEST

HTTPRESPONSE

V

C M

Page 60: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Que lindo!

Page 61: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Mas a realidade é mais dura...

Page 62: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Quebra de Paradigma

Page 63: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O Controlador não observa a Visão

Controller

View Model

Page 64: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

A Visão não observa o Modelo

Controller

View Model

Page 65: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

A Visão não fala com o Controlador

Controller

View Model

FrontController

Page 66: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Toda requisição vai para o Front Controller

Controller

View Model

FrontController

HTTPREQUEST

Page 67: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

O Front Controller designa um Page Controller

Controller

View Model

FrontController

HTTPREQUEST

EXECUTE

Page 68: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

A Visão obtém os dados do Modelo...

Controller

View Model

FrontController

HTTPREQUEST

EXECUTE

GET DATA

Page 69: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

...atualizados pelo Controlador

Controller

View Model

FrontController

HTTPREQUEST

EXECUTE

GET DATA

SET DATA

Page 70: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

CONTROLADOR FRONTAL

CASTELO DE BODIAM, INGLATERRA

Page 71: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Padrão de Projeto: Controlador de página

<?php

class IndexController extends Zend_Controller_Action{ public function init() { /* Initialize action controller here */ }

public function indexAction() { // action body }}

CONTROLADOR

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

Page 72: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend Framework

Controlador de erros

class ErrorController extends Zend_Controller_Action{ public function errorAction() { $errors = $this->_getParam('error_handler'); switch ($errors->type) { case 'EXCEPTION_NO_CONTROLLER': case 'EXCEPTION_NO_ACTION': // 404 error -- controller or action not found $this->getResponse()->setHttpResponseCode(404); $this->view->message = 'Page not found'; break; default: // application error $this->getResponse()->setHttpResponseCode(500); $this->view->message = 'Application error'; break; } $this->view->exception = $errors->exception; $this->view->request = $errors->request; }}

CONTROLADOR

Page 73: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Cláudia Schiffer Naomi Campbell Riyo Mori

MODELO

Page 74: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Não tem Zend_Model...

Mas tem:►Zend_Db_Table►Zend_Feed►Zend_Rest►Zend_Service►Zend_Soap►Zend_XmlRpc►Zend_Search_Lucene...

MODELO

Page 75: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend_Db_Table

►Mapeia tabelas relacionais para classes PHP.►Define relacionamentos e restrições no modelo.►Permite construir consultas orientadas a objeto com Zend_Db_Table_Select.►Não obriga a criação de classes PHP (>1.10), pode criar modelos dinamicamente.►Pode ser usado de dois modos:

→Tenho saudade de SQL→ Active Record

MODELO

Page 76: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Para a interface com o usuário, Zend Framework usa o padrão de projeto Vista em Duas Etapas.

1) Primeiro ele transforma dos dados provenientes do modelo, ou enviados pelo controlador, em uma apresentação lógica, sem qualquer formatação específica (Zend_View)

2) Depois, ele converte essa apresentação lógica na formatação real necessária (Zend_Layout)

VISÃO

Page 77: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Um layout pode servir para várias páginas:

Layout

Página 1 Página 2 Página 3 Página 4 Página 5

CSSJavascript

CONTEÚDO, NO CORPO DO DOCUMENTO

VISÃO

Page 78: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend_View permite reutilização de componente de visão: view partials

Visão Principal

Partial 1 Partial 2 Partial 3

Partials podem ser reaproveitados

VISÃO

Page 79: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Um projeto MVC pode ser criado rapidamente com Zend Tool.

Ele pode ser executado na linha de comando ou integrado com IDEs como Eclipse e Netbeans.

SEM APRISIONAMENTO POR IDE'S!

Page 80: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

# Unix:% zf.sh create project quickstart

# DOS/Windows:C:> zf.bat create project quickstart

DÁ PRA LIGAR SEM CONTROLE REMOTO!

Page 81: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Zend Framework

quickstart|-- application| |-- Bootstrap.php| |-- configs| | `-- application.ini| |-- controllers| | |-- ErrorController.php| | `-- IndexController.php| |-- models| `-- views| |-- helpers| `-- scripts| |-- error| | `-- error.phtml| `-- index| `-- index.phtml|-- library|-- public| `-- index.php`-- tests |-- application | `-- bootstrap.php |-- library | `-- bootstrap.php `-- phpunit.xml

14 directories, 10 files

Page 82: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Fluxo da requisição e plugins

C

Page 83: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Security

Acl

Auth

Filter

Validate

CODIFICAÇÃO SEGURA

Zend_Form

integração

Page 84: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DataDatabase

XML

Search

PDF

NO SQL INJECTION

PDO

Page 85: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Core

ConfigLog

RegistrySession

Cache

INI, XML, PHP...

Page 86: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Web Services

Feed

Client

Server

Services

XML-RPC

SOAP

REST

Page 87: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Web Services

Feed

Client

Server

Services

COMPUTAÇÃO EM NUVEM COM PHP

Page 88: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

INTERNACIONALIZAÇÃO

LocaleTranslateMeasure

DateCalendarCurrency

Page 89: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

DEBUG

DOM

FILE

FORM

MAIL

NAVIGATION

PAGINATOR

...TEST

Page 90: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

A Melhor maneira de

reduzir Riscos no Desenvolvimento

de Software é NÃO

DESENVOLVER!

GRADY BOOCH, um dos criadores da UML

LEMBRE-SE DISSO:

Page 91: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

NÃO DESENVOLVA! REUSE!

E NÃO SE ESQUEÇA

DISSO!

Page 92: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

MENSAGEM SUBLIMINAR:

USE ZEND FRAMEWORK!

Page 93: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

ALGUMA PERGUNTA?

http://framework.zend.comwww.zfbrasil.com

Page 94: Palestra Zend Framework PHPSC Conf 2010

www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte

PHPSC Conf 2010 – um dos maiores eventos de PHP do Brasil

Fonte: carlosbritto.com

Obrigado!

Mas precisamos de tradutores!

http://groups.google.com.br/group/zfdoc-ptbr