Zend Framework
Collaboration Project●   Iniciativas de código   ●   Projetos    aberto                      –   Zend Framework*●   Envolv...
Zend Framework  Framework de código aberto de altíssimaqualidade para construção de aplicações para      internet e Web Se...
Objetivos●   Fornecer um    ambiente completo    para aplicações    escritas em PHP.●   Tornar o PHP uma    tecnologia pad...
Objetivos●   Envolver a    comunidade e    desenvolvedores.●   Prover componentes    de alta qualidade e    com atualizaçõ...
Padrões●   Formatação de    arquivos.●   Convenção de    nomes.●   Estilo de codificação.●   Documentação de    código.
Componentes●   Cache●   Configuration●   Controller●   DataBase●   Feed●   Filter●   HTTP Client●   Json
Componentes●   Log●   Mail●   Mime●   PDF●   Search●   Service●   View●   XML RPC
O Caminho das Pedras●   Por onde começar?●   Até onde é possível    chegar?●   Onde estamos?●   Pra onde vamos?●   Será qu...
Arquitetura
Olá Mundo!●   Estrutura de    Diretórios    –   Bibliotecas    –   Artefatos Públicos    –   Aplicação         ●   Control...
O Início●   Centralização das    Requisições    –   Rewrite Rules●   Inicialização do    sistema.    –   Include Path    –...
O Início.htaccessRewriteEngine onRewriteRule !.(js|ico|gif|jpg|png|css)$ index.phpindex.php<?phpdefine( ZEND_DIR, /bibliot...
Controle●   Zend_Controller    –   Fornece alicerces        para construção de        sistemas baseados no        padrão M...
Controle●   Componentes    –   Roteador    –   Despachante    –   Ações
ControleIndexController.php<?phpclass IndexController extends Zend_Controller_Action {     public function indexAction() {...
Tela●   Zend_View    –   Provê assistentes,        filtros de saída e        escape de variáveis        para construção de...
Tela●   Componentes    –   Assistente    –   Renderizador●   Sistema de    renderização flexível    e desacoplado.    –   ...
TelaUsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action {     public function listarAction() ...
Telaformulario.php<html>    <head>        <title>Listar Usuários</title>    </head>    <body>        <form action="/Usuari...
Banco de Dados●   Zend_Db    –   Construção de        comandos e        mapeamento        automático das        tabelas.
Banco de Dados●   Utiliza o adaptador    PHP Data Object.●   Compatibilidade    –   Firebird    –   Oracle    –   PostgreS...
Banco de Dados●   Componentes    –   Select         ●   Construção de             instruções sql             independente ...
Banco de DadosUsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action {     public function lista...
Banco de DadosUsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action {     public function lista...
Banco de DadosCandidato.php<?phpclass Candidato extends Zend_Db_Table {}?>UsuarioController.php<?phpclass UsuarioControlle...
Um Pouco Mais de Tempero
Service AmazonExemploController.php<?phpclass ExemploController extends Zend_Controller_Action {    public function indexA...
Service FlickrExemploController.php<?phpclass ExemploController extends Zend_Controller_Action {    public function indexA...
Service YahooExemploController.php<?phpclass ExemploController extends Zend_Controller_Action {    public function indexAc...
Feedexemplo.php<?phptry {     $slashdot = Zend_Feed::import(http://rss.slashdot.org/);     foreach ( $slashdot as $item ) ...
Mailexemplo.php<?php     $mail = new Zend_Mail();     $mail->setFrom( renedelima@gmail.com, Renê de Lima );     $mail->add...
Além do Horizonte●   Arquitetura Orientada    a Serviços●   Web Services●   Rich Interface    Applications
Como participar?●   Revisão e análise    –   Comunidade    –   Core Team●   Laboratório●   Encubadora
O mundo●   CakePHP●   Phrame●   Prado
Zend Framework
Upcoming SlideShare
Loading in …5
×

Zend Framework

694 views
648 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
694
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Zend Framework

  1. 1. Zend Framework
  2. 2. Collaboration Project● Iniciativas de código ● Projetos aberto – Zend Framework*● Envolve Zend, sócios – Developer Zone e comunidade – Eclipse PHP IDE● Promover a utilização do PHP
  3. 3. Zend Framework Framework de código aberto de altíssimaqualidade para construção de aplicações para internet e Web Services com PHP.
  4. 4. Objetivos● Fornecer um ambiente completo para aplicações escritas em PHP.● Tornar o PHP uma tecnologia padrão de mercado.
  5. 5. Objetivos● Envolver a comunidade e desenvolvedores.● Prover componentes de alta qualidade e com atualizações constantes.
  6. 6. Padrões● Formatação de arquivos.● Convenção de nomes.● Estilo de codificação.● Documentação de código.
  7. 7. Componentes● Cache● Configuration● Controller● DataBase● Feed● Filter● HTTP Client● Json
  8. 8. Componentes● Log● Mail● Mime● PDF● Search● Service● View● XML RPC
  9. 9. O Caminho das Pedras● Por onde começar?● Até onde é possível chegar?● Onde estamos?● Pra onde vamos?● Será que lá tem internet?
  10. 10. Arquitetura
  11. 11. Olá Mundo!● Estrutura de Diretórios – Bibliotecas – Artefatos Públicos – Aplicação ● Controladoras ● Telas ● Banco de Dados
  12. 12. O Início● Centralização das Requisições – Rewrite Rules● Inicialização do sistema. – Include Path – Autoload
  13. 13. O Início.htaccessRewriteEngine onRewriteRule !.(js|ico|gif|jpg|png|css)$ index.phpindex.php<?phpdefine( ZEND_DIR, /biblioteca/Zend/ );ini_set( include_path, ini_get(include_path) . PATH_SEPARATOR . ZEND_DIR);function __autoload( $class ){ // ... Zend::loadClass( $class );}include Zend.php;Zend_Controller_Front::run(/aplicacao/controladora);?>
  14. 14. Controle● Zend_Controller – Fornece alicerces para construção de sistemas baseados no padrão MVC.
  15. 15. Controle● Componentes – Roteador – Despachante – Ações
  16. 16. ControleIndexController.php<?phpclass IndexController extends Zend_Controller_Action { public function indexAction() { } public function noRouteAction() { $this->_redirect( / ); }}?>UsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action { public function listarAction() { }}?>
  17. 17. Tela● Zend_View – Provê assistentes, filtros de saída e escape de variáveis para construção de telas.
  18. 18. Tela● Componentes – Assistente – Renderizador● Sistema de renderização flexível e desacoplado. – Smarty – Template Power – Script
  19. 19. TelaUsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action { public function listarAction() { $tela = new Zend_View(); $tela->usuarios = array(); echo $view->render( listar_usuarios.php ); }}?>listar_usuarios.php<html> <head> <title>Listar Usuários</title> </head> <body> <ul> <?php foreach( $this->usuarios as $usuario ): ?> <li><?= $usuario->nome ?></li> <?php endforeach; ?> </ul> </body></html>
  20. 20. Telaformulario.php<html> <head> <title>Listar Usuários</title> </head> <body> <form action="/Usuario/Cadastrar" method="get"> <?php $this->formSelect( pais, BR, null, $this->paises ); ?> </form> </body></html>resultado:<select name="pais"> <option value="AR">Argentina</option> <option value="BR" selected="selected">Brasil</option> <option value="ES">Espanha</option></select>
  21. 21. Banco de Dados● Zend_Db – Construção de comandos e mapeamento automático das tabelas.
  22. 22. Banco de Dados● Utiliza o adaptador PHP Data Object.● Compatibilidade – Firebird – Oracle – PostgreSQL – MSSQL – MySQL – SQLite
  23. 23. Banco de Dados● Componentes – Select ● Construção de instruções sql independente do adaptador utilizado. – Table ● Manipulação automatizada dos dados.
  24. 24. Banco de DadosUsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action { public function listarAction(){ $params = array ( host => 127.0.0.1, username => rene, password => ******, dbname => tse ); $db = Zend_Db::factory( pdoMysql, $params ); $select = $db->select(); $select->from( candidato, * ); $select->where( partido = ?, 49 ); $select->order( honestidade ); $select->limit( 10, 20 ); $lista = $db->fetchAll( $select ); }}?>
  25. 25. Banco de DadosUsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action { public function listarAction(){ $params = array ( host => 127.0.0.1, username => marco_aurerio, password => ******, dbname => tse ); $db = Zend_Db::factory( pdoMysql, $params ); $select = $db->select(); $select->from( candidato, * ); $select->where( historico <> ?, nebuloso ); $select->order( honestidade ); $select->limit( 10, 20 ); $lista = $db->fetchAll( $select ); }}?>
  26. 26. Banco de DadosCandidato.php<?phpclass Candidato extends Zend_Db_Table {}?>UsuarioController.php<?phpclass UsuarioController extends Zend_Controller_Action { public function listarAction(){ $params = array ( host => 127.0.0.1, username => marco_aurerio, password => ******, dbname => tse ); $db = Zend_Db::factory( pdoMysql, $params ); Zend_Db_Table::setDefaultAdapter( $db ); $candidato = new Candidato(); $lista = $candidato->find( array( 49, 3 ) ); }}?>
  27. 27. Um Pouco Mais de Tempero
  28. 28. Service AmazonExemploController.php<?phpclass ExemploController extends Zend_Controller_Action { public function indexAction() { $amazon = new Zend_Service_Amazon( CHAVE ); $lista = $amazon->itemSearch( array( SearchIndex => livros, Keywords => azeitona ) ); echo $view->render( exemplo.php ); }}exemplo.php<html> <head> <title>Listar Resultados</title> </head> <body> <ul> <?php foreach( $this->lista as $item ): ?> <li><?= $item->title ?></li> <?php endforeach; ?> </ul> </body></html>
  29. 29. Service FlickrExemploController.php<?phpclass ExemploController extends Zend_Controller_Action { public function indexAction() { $flickr = new Zend_Service_Flickr( CHAVE ); $lista = $flickr->tagSearch( repolho ); echo $view->render( exemplo.php ); }}exemplo.php<html> <head> <title>Listar Resultados</title> </head> <body> <ul> <?php foreach( $this->lista as $item ): ?> <li><?= $item->title ?></li> <?php endforeach; ?> </ul> </body></html>
  30. 30. Service YahooExemploController.php<?phpclass ExemploController extends Zend_Controller_Action { public function indexAction() { $yahoo = new Zend_Service_Yahoo( CHAVE ); $lista = $yahoo->webSearch( tomate ); echo $view->render( exemplo.php ); }}exemplo.php<html> <head> <title>Listar Resultados</title> </head> <body> <ul> <?php foreach( $this->lista as $item ): ?> <li><?= $item->title ?></li> <?php endforeach; ?> </ul> </body></html>
  31. 31. Feedexemplo.php<?phptry { $slashdot = Zend_Feed::import(http://rss.slashdot.org/); foreach ( $slashdot as $item ) { echo $item->title(); echo $item->link(); echo $item->description(); }} catch ( Zend_Feed_Exception $exception ) { echo $exception->getMessage(); exit;}?>
  32. 32. Mailexemplo.php<?php $mail = new Zend_Mail(); $mail->setFrom( renedelima@gmail.com, Renê de Lima ); $mail->addTo( renandelima@gmail.com, Renan de Lima ); $mail->setSubject( saudações ); $mail->setBodyText( Olá enfermeira! ); $mail->send();?>
  33. 33. Além do Horizonte● Arquitetura Orientada a Serviços● Web Services● Rich Interface Applications
  34. 34. Como participar?● Revisão e análise – Comunidade – Core Team● Laboratório● Encubadora
  35. 35. O mundo● CakePHP● Phrame● Prado
  36. 36. Zend Framework

×