Diogo Matheus
Seguir02/05/2011 ·
10 minutos de leitura
Compartilhar
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.
Na documentação do zend framework conseguimos ver os helpers disponíveis.
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.
Organizando nossa estrutura para os helpers
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:
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.
Pronto, agora nossos helpers estão disponíveis para toda aplicação.
Criando nosso controller action helper
Vamos criar nosso action helper, que será uma classe para auxiliar na geração de strings randômicas, o arquivo deve ser criado na pasta “ZF/Controller/Helper” com o nome “GenerateRandom.php”, veja a seguir o conteúdo do nosso action helper e não se assuste com seu tamanho, pois o objetivo é poder trabalhar dando mais exemplos na hora de testar.
O método “direct” é responsável por chamar o método principal em caso de chamada direta do helper.
Criando nosso view helper
Agora vamos criar nosso view helper, que será uma classe auxiliar para controlar o tamanho dos textos que serão exibidos na camada de visão, muitas vezes precisamos “cortar” esses textos para manter o layout agradável, o arquivo deve ser criado na pasta “ZF/View/Helper” com o nome “Truncate.php”, veja a seguir o conteúdo do nosso view helper.
Nesse momento nossa estrutura está da seguinte forma:
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
index.phtml
Resultado
Ao acessar nossa aplicação, vamos obter o seguinte resultado:
As strings geradas pelo nosso action helper vão variar a cada acesso, pois são aleatórias.