37
Cezar Junior de Souza Centro de Residência em Software - Unochapecó

Zend Framework 1.11

Embed Size (px)

DESCRIPTION

Curso sobre o Zend Framework 1.11.

Citation preview

Page 1: Zend Framework 1.11

Cezar Junior de Souza

Centro de Residência em Software - Unochapecó

Page 2: Zend Framework 1.11

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

Page 3: Zend Framework 1.11

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.

Page 4: Zend Framework 1.11

Alguns Frameworks

Page 5: Zend Framework 1.11

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.

Page 6: Zend Framework 1.11

Empresas envolvidas

Page 7: Zend Framework 1.11

Certificados

Page 8: Zend Framework 1.11

MVC

Page 9: Zend Framework 1.11

Componentes Zend

Page 10: Zend Framework 1.11

Árvore de Pastas

Page 11: Zend Framework 1.11

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.

Page 12: Zend Framework 1.11

Criando um Projeto

zf create project projeto

Page 13: Zend Framework 1.11

Árvore de Pasta – Zend Tool

Page 14: Zend Framework 1.11

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;

Page 15: Zend Framework 1.11

IndexController

<?php class IndexController extends Zend_Controller_Action{

public function indexAction(){ $this->view->data = date('Y-m-d H:i:s');

}

}

Page 16: Zend Framework 1.11

Index.phtml

<html> <head><title>Index</title></head> <body><h1>Index Controller</h1><?php echo $this->data; ?> </body></html>

Page 17: Zend Framework 1.11

.htaccess Permissões / URL's

RewriteEngine on

RewriteRule !\.(ico|gif|txt|jpg|png|css|js|swf|svg|html|htm)$ index.php

Page 18: Zend Framework 1.11

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

Page 19: Zend Framework 1.11

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"

Page 20: Zend Framework 1.11

Models

Caminho: /zend/projeto/models

<?php

class Acessorios extends Zend_Db_Table_Abstract{

protected $_name = 't_acessorio';

protected $_primary = 'ac_codigo';

}

Page 21: Zend Framework 1.11

Pegar dados do banco

No controller:

public function exibirAction(){

$acessorios = new Acessorios();

$this->view->dados = $acessorios->fetchAll();

}

Page 22: Zend Framework 1.11

Pegar dados do banco

Na visão

<?php

foreach($this->dados as $a){

echo $a['ac_descricao'];

}

?>

Page 23: Zend Framework 1.11

Insert

public function inserirAction(){ $dados = array( 'ac_descricao' => 'inserindo zend' ); $acessorios = new Acessorios(); $acessorios->insert($dados); $this->_redirect('index/exibir');

}

Page 24: Zend Framework 1.11

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

Page 25: Zend Framework 1.11

Delete

public function deleteAction(){ $acessorios = new Acessorios(); $db = $acessorios->getAdapter(); $where = $db->quoteInto('ac_codigo = ?', 11); $acessorios->delete($where); $this->_redirect('index/exibir'); }

Page 26: Zend Framework 1.11

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;

}

Page 27: Zend Framework 1.11

PaginaçãoNa 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');

}

?>

Page 28: Zend Framework 1.11

Buscapublic 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;

}

Page 29: Zend Framework 1.11

Busca<form action="<?php echo BASE_URL;?>/index/buscar" method="post"> Buscar: <input type="text" name="buscar" /><input type="submit" value="Buscar" />

</form><?phpif(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');}?>

Page 30: Zend Framework 1.11

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();

Page 31: Zend Framework 1.11

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.

Page 32: Zend Framework 1.11

Zend Form

Criando um formulário:

zf create form LoginForm

Page 33: Zend Framework 1.11

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

Page 34: Zend Framework 1.11

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');

Page 35: Zend Framework 1.11

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');

}}

Page 36: Zend Framework 1.11

Zend Form

Setar Atributos:

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

->addValidator('Alpha', true, 'allowWhiteSpace');

->addValidator('EmailAddress');

->addValidator('StringLength', true, array(0, 2000));

Page 37: Zend Framework 1.11

http://framework.zend.com/manual