You are on page 1of 36

Zend Framework

Collaboration Project

Iniciativas de cdigo aberto Envolve Zend, scios e comunidade Promover a utilizao do PHP

Projetos

Zend Framework* Developer Zone Eclipse PHP IDE

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

Formatao de arquivos. Conveno de nomes. Estilo de codificao. Documentao de cdigo.

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 comear? At onde possvel chegar? Onde estamos? Pra onde vamos? Ser que l tem internet?

Arquitetura

Ol Mundo!

Estrutura de Diretrios

Bibliotecas Artefatos Pblicos Aplicao


Controladoras Telas Banco de Dados

O Incio

Centralizao das Requisies

Rewrite Rules

Inicializao do sistema.

Include Path Autoload

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

Fornece alicerces para construo de sistemas baseados no padro MVC.

Controle

Componentes

Roteador Despachante Aes

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

Prov assistentes, filtros de sada e escape de variveis para construo de telas.

Tela

Componentes

Assistente Renderizador

Sistema de renderizao flexvel e desacoplado.


Smarty Template Power Script

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

Construo de comandos e mapeamento automtico das tabelas.

Banco de Dados

Utiliza o adaptador PHP Data Object. Compatibilidade


Firebird Oracle PostgreSQL MSSQL MySQL SQLite

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

Um Pouco Mais de Tempero

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

Arquitetura Orientada a Servios Web Services Rich Interface Applications

Como participar?

Reviso e anlise

Comunidade Core Team

Laboratrio Encubadora

O mundo

CakePHP Phrame Prado

Zend Framework

You might also like