zend framework

Post on 04-Jul-2015

605 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Zend Framework

Collaboration Project● Iniciativas de código

aberto● Envolve Zend, sócios

e comunidade● Promover a utilização

do PHP

● Projetos– Zend Framework*– Developer Zone– Eclipse PHP IDE

Zend Framework

Framework de código aberto de altíssima qualidade para construção de aplicações para

internet e Web Services com PHP.

Objetivos● Fornecer um

ambiente completo para aplicações escritas em PHP.

● Tornar o PHP uma tecnologia padrão de mercado.

Objetivos● Envolver a

comunidade e desenvolvedores.

● Prover componentes de alta qualidade e com atualizações constantes.

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á que lá tem

internet?

Arquitetura

Olá Mundo!● Estrutura de

Diretórios– Bibliotecas– Artefatos Públicos– Aplicação

● Controladoras● Telas● Banco de Dados

O Início● Centralização das

Requisições– Rewrite Rules

● Inicialização do sistema.– Include Path– Autoload

O Início.htaccessRewriteEngine onRewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

index.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');?>

Controle● Zend_Controller

– Fornece alicerces para construção de sistemas baseados no padrão MVC.

Controle● Componentes

– Roteador– Despachante– Ações

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() { }}?>

Tela● Zend_View

– Provê assistentes, filtros de saída e escape de variáveis para construção de telas.

Tela● Componentes

– Assistente– Renderizador

● Sistema de renderização flexível e desacoplado.– Smarty– Template Power– Script

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>

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>

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– PostgreSQL– MSSQL– MySQL– SQLite

Banco de Dados● Componentes

– Select● Construção de

instruções sql independente do adaptador utilizado.

– Table● Manipulação

automatizada dos dados.

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

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

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

Um Pouco Mais de Tempero

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>

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>

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>

Feedexemplo.php<?php

try { $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;}?>

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

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

top related