Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Zend Framework
index.php
<?php
ini_set(
'include_path',
ini_get('include_path') . PATH_SEPARATOR . ZEND_DIR
);
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
Controle
IndexController.php
<?php
?>
UsuarioController.php
<?php
?>
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
Tela
UsuarioController.php
<?php
$tela->usuarios = array();
?>
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>
Tela
formulario.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 Dados
UsuarioController.php
<?php
$params = array (
'host' => '127.0.0.1',
'username' => 'rene',
'password' => '******',
'dbname' => 'tse'
);
$select = $db->select();
$select->order( 'honestidade' );
$select->limit( 10, 20 );
?>
Banco de Dados
UsuarioController.php
<?php
$params = array (
'host' => '127.0.0.1',
'username' => 'marco_aurerio',
'password' => '******',
'dbname' => 'tse'
);
$select = $db->select();
$select->order( 'honestidade' );
$select->limit( 10, 20 );
?>
Banco de Dados
Candidato.php
<?php
?>
UsuarioController.php
<?php
$params = array (
'host' => '127.0.0.1',
'username' => 'marco_aurerio',
'password' => '******',
'dbname' => 'tse'
);
Zend_Db_Table::setDefaultAdapter( $db );
?>
Um Pouco Mais de Tempero
Service Amazon
ExemploController.php
<?php
$lista = $amazon->itemSearch(
array(
'SearchIndex' => 'livros',
'Keywords' => 'azeitona'
)
);
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
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
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/');
echo $item->title();
echo $item->link();
echo $item->description();
echo $exception->getMessage();
exit;
?>
Mail
exemplo.php
<?php
$mail->setSubject( 'saudações' );
$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