Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zend Framework

769 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

×