SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Cezar Junior de Souza
Centro de Residência em Software - Unochapecó
O que é um framework
•

“Framework é um conjunto de classes que
colaboram para realizar uma responsabilidade
para um domínio de um subsistema de
aplicação.”
Fayad e Shmidt

•

“Um framework é um conjunto de classes
que provê a abstração para resolver uma
família de problemas.”
Johnson e Foote
Vantagens em utilizar um
Framework
●

Redução no custo total do desenvolvimento;

●

Consistência;

●

Compatibilidade entre aplicações;

●

Padronização;

●

Redução da manutenção dos sistemas;

●

Erros detectados mais rapidamente;

●

Otimização dos recursos de desenvolvimento.
Alguns Frameworks
Um pouco sobre Zend
Zend Framework é um framework para aplicações
Web de código aberto, orientado a objetos,
implementado em PHP 5 e licenciado como New
BSD
License(Livre).
Zend
Framework
é
desenvolvido com o objetivo de simplificar o
desenvolvimento web enquanto promove as
melhores
práticas
na
comunidade
de
desenvolvedores PHP.
Empresas envolvidas
Certificados
MVC
Componentes Zend
Árvore de Pastas
Zend Tool


Zend Tool, como o nome já diz, é uma
ferramenta para linha de comando que nos
ajuda a gerar código para nossas aplicações.
Criando um Projeto


zf create project projeto
Árvore de Pasta – Zend Tool
Bootstrap (index.php)





Arquivo principal da aplicação;
Define todos os caminhos onde os arquivos
estão armazenados, e todos os componentes
que a aplicação vai utilizar assim como o inicio
da sessão e a definição de váriaveis staticas
que serão utilizadas na aplicação;
Responsável por inicializar a aplicação;
IndexController
<?php
class IndexController extends Zend_Controller_Action{
public function indexAction(){
$this->view->data = date('Y-m-d H:i:s');
}
}
Index.phtml
<html>
<head><title>Index</title></head>
<body>
<h1>Index Controller</h1>
<?php echo $this->data; ?>
</body>
</html>
.htaccess Permissões / URL's
RewriteEngine on
RewriteRule !.(ico|gif|txt|jpg|png|css|js|swf|svg|html|htm)
$ index.php
URL's
http://localhost/zend/projeto/classe/método


Exemplo:
http://localhost/zend/capacitacao/index
http://localhost/zend/capacitacao/admin
http://localhost/zend/capacitacao/index/exibir
http://localhost/zend/capcitacao/admin/cadastro
application.ini
Caminho:
/zend/projeto/application/configs/application.ini
zf configure db-adapter
"adapter=PDO_PGSQL&host=localhost&
dbname=curso_php&username=postgres
&password=root"
Models
Caminho: /zend/projeto/models
<?php
class Acessorios extends
Zend_Db_Table_Abstract{
protected $_name = 't_acessorio';
protected $_primary = 'ac_codigo';
}
Pegar dados do banco
No controller:
public function exibirAction(){
$acessorios = new Acessorios();
$this->view->dados = $acessorios->fetchAll();
}
Pegar dados do banco


Na visão
<?php
foreach($this->dados as $a){
echo $a['ac_descricao'];
}
?>
Insert
public function inserirAction(){
$dados = array(
'ac_descricao' => 'inserindo zend'
);
$acessorios = new Acessorios();
$acessorios->insert($dados);
$this->_redirect('index/exibir');
}
Update
public function updateAction(){
$dados = array(
'ac_descricao' => 'update'
);
$acessorios = new Acessorios();
$db = $acessorios->getAdapter();
$where = $db->quoteInto('ac_codigo = ?', 11);
$acessorios->update($dados, $where);
$this->_redirect('index/exibir');
}
Delete
public function deleteAction(){
$acessorios = new Acessorios();
$db = $acessorios->getAdapter();
$where = $db->quoteInto('ac_codigo = ?', 11);
$acessorios->delete($where);
$this->_redirect('index/exibir');
}
Paginação
No controller:
public function paginacaoAction(){
$acessorios = new Acessorios();
$res = $acessorios->fetchAll();
$paginator =Zend_Paginator::factory($res);
$current = $this->_getParam('page', 1);
$paginator->SetCurrentPageNumber($current)
->setItemCountPerPage(5);
$this->view->paginator = $paginator;
}
Paginação
Na visão:
<?php
if(count($this->paginator)>0){
foreach ($this->paginator as $a){
echo '<h3>'.$a['ac_codigo'].'</h3>'.'<br>'.
$a['ac_descricao']; ?>
<br><br>
<?php
}
echo $this->paginationControl($this->paginator, 'Sliding',
'partials/paginator.phtml');
}
?>
Busca
public function buscarAction(){
$post = Zend_Registry::get('post');
$acessorios = new Acessorios();
if ($post->buscar){
$db = $acessorios->getAdapter();
$where = $db->quoteInto('ac_descricao LIKE ?', '%'.
$post->buscar.'%');
}
$res = $acessorios->fetchAll($where);
$paginator = Zend_Paginator::factory($res);
$current = $this->_getParam('page', 1);
$paginator->SetCurrentPageNumber($current)
->setItemCountPerPage(5);
$this->view->paginator = $paginator;
}
Busca
<form action="<?php echo BASE_URL;?>/index/buscar"
method="post">
Buscar: <input type="text" name="buscar" /><input type="submit"
value="Buscar" />
</form>
<?php
if(count($this->paginator)>0){
foreach ($this->paginator as $a){
echo '<h3>'.$a['ac_codigo'].'</h3>'.'<br>'.$a['ac_descricao']; ?>
<br><br>
<?php
}
echo $this->paginationControl($this->paginator, 'Sliding',
'partials/paginator.phtml');
}
?>
Validações
Algumas das Validações Mais Utilizadas:



Zend_Validate_Alnum();
Zend_Validate_Alnum(array('allowWhiteSpace'
=> true));



Zend_Validate_EmailAddress();



Zend_Validate_NotEmpty();



Zend_Validate_Int();
Zend Form
O Zend_Form é um componente que permite que
formulários sejam criados e mantidos usando-se objetos,
aumentando produtividade e mantendo um padrão de
desenvolvimento. É possível também com o Zend_Form, a
implementação de formulários com herança, ou seja, você
tem um formulário genérico (ex: PessoaForm) que pode ser
utilizado para criação de outros (ex: AdministradorForm)
que possuiriam apenas alguns campos adicionais além do
form padrão.
Ele também possui componentes que permitem a utilização
de todos os Filters e Validators do Zend, bem como a
implementação de Componentes personalizados.
Zend Form


Criando um formulário:
zf create form LoginForm
Zend Form


Formulário de Login:
<?php
class Application_Form_LoginForm extends Zend_Form
{
public function init()
{
//nome do formulário
$this->setName('Login');
//elemento para o campo username
$username = new Zend_Form_Element_Text('username');
//configura
Zend Form


Formulário de Login:
//configurar o label, dizer q é obrigatório, adicionar um
filtro e um validador
$username->setLabel('Login') ->setRequired(true)
->addFilter('StripTags')->addValidator('NotEmpty');
//elemento para a senha
$password = new Zend_Form_Element_Password('password');
$password->setLabel('Senha')->setRequired(true)
->addFilter('StripTags')->addValidator('NotEmpty');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Entrar');
$submit->setAttrib('id', 'Entrar');
Zend Form


Formulário de Login:

}
}

//exemplo de class css
//$submit->setAttrib('class', 'verde buttonBar');
//adicionar os campos ao formulário
$this->addElements(array($username, $password, $submit));
//action e method
$this->setAction('/index/index')->setMethod('post');
Zend Form


Setar Atributos:
->setAttrib('maxlength','200');



Setar Validadores:
->addValidator('Alpha', true, 'allowWhiteSpace');
->addValidator('EmailAddress');
->addValidator('StringLength', true, array(0,
2000));
http://framework.zend.com/manual

Más contenido relacionado

La actualidad más candente

XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - Brazil
Stephen Chin
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 

La actualidad más candente (20)

Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Curso de Introdução - PHP Zend Framework
Curso de Introdução - PHP Zend FrameworkCurso de Introdução - PHP Zend Framework
Curso de Introdução - PHP Zend Framework
 
O framework spring
O framework springO framework spring
O framework spring
 
Spa com angular js flisol 2015 - aquidauana ms
Spa com angular js   flisol 2015 - aquidauana msSpa com angular js   flisol 2015 - aquidauana ms
Spa com angular js flisol 2015 - aquidauana ms
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
 
Tutorial codeigniter
Tutorial codeigniterTutorial codeigniter
Tutorial codeigniter
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Python 06
Python 06Python 06
Python 06
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - Brazil
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 

Similar a Zend Framework 1.11

Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
Pablo Dall'Oglio
 

Similar a Zend Framework 1.11 (20)

Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend Framework
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in Javascript
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Desenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyDesenvolvimento Mobile com Ruby
Desenvolvimento Mobile com Ruby
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Zend Framework 1.11