out 18

View Helpers com Zend Framework

Helpers, PHP, Programação, View Helpers, Zend Framework 3 Comentários Zend Framework

Muitas vezes durante o desenvolvimento de uma aplicação precisamos criar uma função ou método que possa ser acessada diretamente na camada View, no Zend Framework (e talvez em outros frameworks) essas função são chamadas de View Helpers, são extremamente simples de se desenvolver e facilitam bastante algumas tarefas da aplicação

Views Helpers Nativas

Você pode não estar familiarizado com o nome “View Helpers” e pode até achar que nunca usou algo do tipo, mas o próprio Zend Framework possui alguns desses métodos implementados nativamente, apenas para critério de exemplo vou listar alguns deles abaixo:

  • url() – Utilizada para gerar links relativos a sua aplicação
  • baseUrl() – Retorna a url básica da sua aplicação
  • View Helpers de Formulários – Uma para gerar cada um dos campos de formulário

A View Helper mais usualmente utilizada acredito que seja a url(), portanto vou utilizar ela própria para demonstrar seu funcionamento:

echo $this->url(array('module' => 'modulo','controller'=>'controlardor','action'=>'acao'), null, TRUE);

Chamando essa view helper diretamente no seu arquivo de view irá imprimir “/modulo/controlador/acao”, com isso você pode usar esse método para criar links dinamicamente dentro da sua aplicação.

Criando sua Própria View Helper

Em alguns casos você precisa criar sua própria View Helper para realizar alguma tarefa que o Zend Framework não faz nativamente, o exemplo a seguir mostra uma View Helper que retorna o nome da sua aplicação para que esse seja utilizado em sua View:

class Zend_View_Helper_ApplicationName extends Zend_View_Helper_Abstract
{
	public function applicationName(){
		return 'Nome da Aplicação';
	}
}

Essa View Helper seria utilizada então da seguinte forma:

echo $this->applicationName();

É um exemplo simples de uso das Views Helper mas através desse método você pode criar qualquer função que desejar e essa função estará disponível automaticamente para ser acessada na sua camada de View. O arquivo com a classe View Helper deve ficar dentro do diretório “views/helpers/ApplicationName.php” caso você esteja usando a estrutura de diretórios recomendada pela Zend.

Conclusão

Através das Views Helper você pode criar métodos que fiquem disponíveis diretamente na sua camada de visão, você pode realizar consultas ao banco de dados para obter informações que são usadas com frequência, pode realizar interações com variáveis, passar diversos parâmetros para esses métodos, ou seja, são inúmera possibilidades de utilização dessa funcionalidade no Framework, basta adaptá-la as suas necessidades.

3 respostas para “View Helpers com Zend Framework”

  1. Igor disse:

    Novamente bem sucinto.
    Parabéns.

  2. Igor Fabricio disse:

    Olá Paulo,
    Tenho uma dúvida.
    Se a minha aplicação estiver estruturada com módulos, como poderia ser criado um view helper para que o mesmo ficasse disponivel em todas as views em todos os módulos?

    • Paulo Eduardo disse:

      Ola Igor,

      Tente inserir as seguintes linhas de código em uma função _init no seu arquivo de bootstrap:

      $this->bootstrap(‘view’);
      $view = $this->getResource(‘view’);
      $view->addHelperPath(‘My/Helper/’, ‘My_Helper’);

      Substituindo “My/Helper” pelo caminho onde você irá armazenar os seus arquivos de View Helpers e “My_Helper” pelo prefixo que irá utilizar nos nomes das classes.

      Não realizei testes em uma aplicação real, mas acredito que esse procedimento deve funcionar, nele você está acessando a sua view no arquivo de bootstrap e adicionando manualmente o caminho para os view helpers, como isso está sendo feito no seu arquivo de bootstrap esse procedimento deverá ter efeito em todas as suas views e com isso tornar o view helper em questão acessível por todas elas.

      Espero ter ajudado.

Deixe uma resposta