SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 BranasRodrigo 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 3Flávio Lisboa
 
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 FrameworkEvandro Klimpel Balmant
 
O framework spring
O framework springO framework spring
O framework springBruno Catão
 
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.JSRodrigo Urubatan
 
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 2015Rodrigo Urubatan
 
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 PHPiMasters
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da ZendDomingos Teruel
 
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...iMasters
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 
XML Free Programming - Brazil
XML Free Programming - BrazilXML Free Programming - Brazil
XML Free Programming - BrazilStephen 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 DorAllyson Barros
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 

Was ist angesagt? (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
 

Ähnlich wie Introdução ao Zend Framework

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 FrameworkPablo Dall'Oglio
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Saulo Vallory
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend FrameworkJaime Neto
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009silva.edgar
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Paulo Victor Gomes
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryMarketing Digital ODIG
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseLuiz Duarte
 
Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptGustavo Corrêa Alves
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Desenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyDesenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyRodrigo Martins
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Pablo Dall'Oglio
 
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 JavascriptMichel Ribeiro
 
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 DadosDaniel Brandão
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheirasLambda 3
 

Ähnlich wie Introdução ao Zend Framework (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
 

Introdução ao Zend Framework