Professional Documents
Culture Documents
Collaboration Project
Iniciativas de cdigo aberto Envolve Zend, scios e comunidade Promover a utilizao do PHP
Projetos
Zend Framework
Framework de cdigo aberto de altssima qualidade para construo de aplicaes para internet e Web Services com PHP.
Objetivos
Fornecer um ambiente completo para aplicaes escritas em PHP. Tornar o PHP uma tecnologia padro de mercado.
Objetivos
Envolver a comunidade e desenvolvedores. Prover componentes de alta qualidade e com atualizaes constantes.
Padres
Componentes
Componentes
Por onde comear? At onde possvel chegar? Onde estamos? Pra onde vamos? Ser que l tem internet?
Arquitetura
Ol Mundo!
Estrutura de Diretrios
O Incio
Rewrite Rules
Inicializao do sistema.
O Incio
.htaccess
RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
index.php
<?php define( '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
Controle
Componentes
Controle
IndexController.php
<?php class IndexController extends Zend_Controller_Action { public function indexAction() { } public function noRouteAction() { $this->_redirect( '/' ); } } ?>
UsuarioController.php
<?php class UsuarioController extends Zend_Controller_Action { public function listarAction() { } } ?>
Tela
Zend_View
Tela
Componentes
Assistente Renderizador
Tela
UsuarioController.php
<?php class 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 Usurios</title> </head> <body> <ul> <?php foreach( $this->usuarios as $usuario ): ?> <li><?= $usuario->nome ?></li> <?php endforeach; ?> </ul> </body> </html>
Tela
formulario.php
<html> <head> <title>Listar Usurios</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
Banco de Dados
Banco de Dados
Componentes
Select
Construo de instrues sql independente do adaptador utilizado. Manipulao automatizada dos dados.
Table
Banco de Dados
UsuarioController.php
<?php class UsuarioController extends Zend_Controller_Action { public function listarAction(){ $params = array ( 'host' => 'username' => 'password' => 'dbname' => ); '127.0.0.1', 'rene', '******', '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 Dados
UsuarioController.php
<?php class UsuarioController extends Zend_Controller_Action { public function listarAction(){ $params = array ( 'host' => 'username' => 'password' => 'dbname' => ); '127.0.0.1', 'marco_aurerio', '******', '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 Dados
Candidato.php
<?php class Candidato extends Zend_Db_Table {} ?>
UsuarioController.php
<?php class UsuarioController extends Zend_Controller_Action { public function listarAction(){ $params = array ( 'host' => 'username' => 'password' => 'dbname' => ); '127.0.0.1', 'marco_aurerio', '******', 'tse'
$db = Zend_Db::factory( 'pdoMysql', $params ); Zend_Db_Table::setDefaultAdapter( $db ); $candidato = new Candidato(); $lista = $candidato->find( array( 49, 3 ) ); } } ?>
Service Amazon
ExemploController.php
<?php class 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 Flickr
ExemploController.php
<?php class 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 Yahoo
ExemploController.php
<?php class 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>
Feed
exemplo.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; } ?>
Mail
exemplo.php
<?php $mail = new Zend_Mail(); $mail->setFrom( 'renedelima@gmail.com', 'Ren de Lima' ); $mail->addTo( 'renandelima@gmail.com', 'Renan de Lima' ); $mail->setSubject( 'saudaes' ); $mail->setBodyText( 'Ol enfermeira!' ); $mail->send(); ?>
Alm do Horizonte
Como participar?
Reviso e anlise
Laboratrio Encubadora
O mundo
Zend Framework