« Configurando o PHP para enviar email no windows através do gmail Entendendo modelos no zend framework » Tweet 2 0 3 Zend View Helpers e Zend Action Helpers Helpers são classes auxiliares que tem como objetivo simplificar o código tanto na view quanto no controller, simplificar de que forma? Se por acaso for necessário gerar strings randômicas personalizadas no controller, ao invés de criar uma função em todo controller que precisar de uma string randômica, podemos criar um action helper que abstraia essa tarefa e fique disponível em todos os controllers, mas e se eu precisar de uma função que limite o tamanho de um texto a ser exibido na minha view? criamos então um view helper para auxiliar nessa tarefa, analisando e cortando o texto se necessário, ficando disponível para todas as views, para obter o resultado esperado chamamos uma função com o nome do helper. Qual a diferença entre view helpers e action helpers? Caso ainda não tenha ficado claro, a diferença é que os view helpers auxiliam nossa camada de visão, nossas views, já os action helpers auxiliam nossos controllers. Ambos são chamados como uma função direta e podem receber parâmetros, mas os actions helpers vão além permitindo que sejam “instanciados”, podendo assim serem manipulados como uma instância de classe, chamando métodos e etc, esse conceito será melhor compreendido na parte final do tutorial onde vamos trabalhar com os helpers. Quais helpers estão disponíveis no zend framework? Na documentação do zend framework conseguimos ver os helpers disponíveis, confira os links abaixo. Zend view helpers: http://framework.zend.com/manual/en/zend.view.helpers.html Zend action helpers: http://framework.zend.com/manual/en/zend.controller.actionhelpers.html O que eu faço se preciso de um helper e não tem disponível? Simples, crie o seu próprio helper, basta seguir as nomenclaturas do zend framework, extender as classes certas e pronto, a seguir vamos criar e testar um action helper e view helper, mas antes vamos configurar nosso ambiente para receber nossos helpers. 4 Gosto
15
Embed
Zend View Helpers e Zend Action Helpers _ Diogo Matheus Blog
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
« Configurando o PHP para enviar email
no windows através do gmail
Entendendo modelos no zend
framework »
Tweet 2 0 3
Zend View Helpers e Zend Action Helpers
Helpers são classes auxiliares que tem como objetivo simplificar o código tanto na
view quanto no controller, simplificar de que forma? Se por acaso for necessário gerar
strings randômicas personalizadas no controller, ao invés de criar uma função em
todo controller que precisar de uma string randômica, podemos criar um action helper
que abstraia essa tarefa e fique disponível em todos os controllers, mas e se eu
precisar de uma função que limite o tamanho de um texto a ser exibido na minha
view? criamos então um view helper para auxiliar nessa tarefa, analisando e cortando
o texto se necessário, ficando disponível para todas as views, para obter o resultado
esperado chamamos uma função com o nome do helper.
Qual a diferença entre view helpers e action helpers?
Caso ainda não tenha ficado claro, a diferença é que os view helpers auxiliam nossa
camada de visão, nossas views, já os action helpers auxiliam nossos controllers.
Ambos são chamados como uma função direta e podem receber parâmetros, mas os
actions helpers vão além permitindo que sejam “instanciados”, podendo assim serem
manipulados como uma instância de classe, chamando métodos e etc, esse conceito
será melhor compreendido na parte final do tutorial onde vamos trabalhar com os
helpers.
Quais helpers estão disponíveis no zend framework?
Na documentação do zend framework conseguimos ver os helpers disponíveis,
Agora vamos configurar nossa aplicaçao para que os helpers fiquem acessíveis de
toda aplicação, muito útil para quem trabalha com módulos pois os helpers ficarão
disponíveis em todos os módulos.
Primeiro vamos criar a estrutura de pastas necessária para nossa configuração, que
ficará dentro da pasta library do nosso projeto.
O resultado deve seguir a estrutura da imagem abaixo:
Estrutura de pastas
organizadas
Com essa estrutura criada, vamos configurar nossa aplicação para encontrar nossos
futuros helpers, para realizar essa configuração temos duas alternativas, configurar
pelo nosso bootstrap e a outra é configurar através do arquivo application.ini, confira
ambas alternativas a seguir, escolha uma e aplique no seu projeto.
Bootstrap.php application.ini
Adicione o método _initHelpers() no seu bootstrap principal com o seguinte
conteúdo:
12345678
/*** _initHelpers** @desc Sets alternative ways to helpers*/protected function _initHelpers(){ $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
* @desc Verifica e corta uma string se for necessário * @uses Zend_View_Interface */class Zend_View_Helper_Truncate { /** * @var Zend_View_Interface */ public $view; /** * @var string $text */ private $resultado; /** * trucante * * @desc Verifica e corta uma string se for necessário * @return string $text */ public function truncate( $text = '', $length = 32, $character if(strlen($text) <= $length) return $text; $this->resultado = substr($text, 0, $length-1); $this->resultado .= $character; return $this->resultado; } /** * Sets the view field * @param $view Zend_View_Interface */ public function setView(Zend_View_Interface $view) { $this->view = $view; }}
Estrutura após a criação dos
helpers
Utilizando View Helper no controller
Pode ser necessário utilizar view helpers no controller, para isso temos as seguintes
opções:
Trabalhando com os helpers no controller e na view
Com os nossos helpers prontos, vamos trabalhar, não será necessário criar controllers
e views, vamos trabalhar usando o IndexController.php e a view index.phtml.
IndexController.php
123456789101112131415
<?phpclass FooController extends Zend_Controller_Action{ public function barAction() { $this->view->helpername(/*params*/); // ou $this->_view->helpername(/*params*/); // ou $helper = $this->view->getHelper('helpername'); // ou $broker = Zend_Controller_Action_HelperBroker::getStaticHelper( $broker->getView()->helpername(/*params*/); }}
public function indexAction() { // cria uma string randômica através do método direct apenas com letras $primaryString = $this->_helper->generateRandom(14, true, false, false); // resgata o helper, retornando uma instância do helper $helper = $this->_helper->getHelper('generateRandom' // ou $helper = $this->_helper->generateRandom; // cria um password seguro através de um dos métodos do helper $secondString = $helper->hardPassword(); // cria uma string numérica chamand o método numeric() $thirdString = $helper->numeric(10); // enviando os dados para view $this->view->assign('alphaString', $primaryString); $this->view->assign('hardPassword', $secondString); $this->view->assign('numericString', $thirdString); // enviando um texto para view $this->view->assign('text', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus.' } }
12345
String de letras gerada pelo nosso action helper: <?php echo $this->alphaString; ?><br />Password gerado pelo nosso action helper: <?php echo $this->hardPassword; ?><br />String de numeros pelo nosso action helper: <?php echo $this->numericString; ?><br /><br />Resultado usando nosso view helper: <?php echo $this->truncate($this->text, 27); ?>