Palestra Zend Framework PHPSC Conf 2010
-
Upload
flavio-lisboa -
Category
Technology
-
view
1.053 -
download
0
description
Transcript of Palestra Zend Framework PHPSC Conf 2010
![Page 1: Palestra Zend Framework PHPSC Conf 2010](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/1.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/2.jpg)
Quem sou eu?
www.fgsl.eti.br É permitida a reprodução, desde que citada a fonte
![Page 3: Palestra Zend Framework PHPSC Conf 2010](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/3.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/4.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/5.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/6.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/7.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/8.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/9.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/10.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/11.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/12.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/13.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/14.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/15.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/16.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/17.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/18.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/19.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/20.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/21.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/22.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/23.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/24.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/25.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/26.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/27.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/28.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/29.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/30.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/31.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/32.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/33.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/34.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/35.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/36.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/37.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/38.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/39.jpg)
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
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/40.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/41.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/42.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/43.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/44.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/45.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/46.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/47.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/48.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/49.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/50.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/51.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/52.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/53.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/54.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/55.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/56.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/57.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/58.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/59.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/60.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/61.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/62.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/63.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/64.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/65.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/66.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/67.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/68.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/69.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/70.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/71.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/72.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/73.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/74.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/75.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/76.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/77.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/78.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/79.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/80.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/81.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/82.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/83.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/84.jpg)
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
NO SQL INJECTION
PDO
![Page 85: Palestra Zend Framework PHPSC Conf 2010](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/85.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/86.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/87.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/88.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/89.jpg)
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
NAVIGATION
PAGINATOR
...TEST
![Page 90: Palestra Zend Framework PHPSC Conf 2010](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/90.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/91.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/92.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/93.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062312/55393c1d4a79597c778b4937/html5/thumbnails/94.jpg)
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