Postado em 27 de março de 2013
Criando um View Helper básico no Zend Framework 2
Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!
Esse post vai mostrar como construir um View Helper básico no Zend Framework 2.
Neste exemplo o nosso helper vai apenas retornar a URL absoluta da página/requisição atual.
[php]<?php
// ./module/Application/src/Application/View/Helper/AbsoluteUrl.php
namespace Application\View\Helper;
use Zend\Http\Request;
use Zend\View\Helper\AbstractHelper;
class AbsoluteUrl extends AbstractHelper
{
protected $request;
public function __construct(Request $request)
{
$this->request = $request;
}
public function __invoke()
{
return $this->request->getUri()->normalize();
}
}[/php]
Como você pode perceber, este helper possui uma dependência – um objeto Zend\Http\Request. O Zend Framework 2 possui uma maneira bem simples para injetar as dependências. Nós precisaremos de uma factory com a inicialização lógica para o nosso view helper:
[php]<?php
// ./module/Application/Module.php
namespace Application;
use Application\View\Helper\AbsoluteUrl;
class Module
{
public function getViewHelperConfig()
{
return array(
‘factories’ => array(
// a chave do array aqui é o nome pelo qual você
// chamará o seu view helper no script da view
‘absoluteUrl’ => function($sm) {
$locator = $sm->getServiceLocator();
// $sm é o gerenciador de view helpers (view
// helper manager), então nós precisamos
// coletar o gerenciador de serviços principal
return new AbsoluteUrl($locator->get(‘Request’));
},
),
);
}
// Se for copiar/colar esse exemplo, você precisará também
// do método getAutoloaderConfig(); acabei omitindo para
// deixar o exemplo mais curto.
}[/php]
E é isso! Agora podemos chamar nosso helper nas nossas views:
Dúvidas? Postem nos comentários!
Bons estudos a todos! Um abraço e fiquem com Deus.
Texto adaptado do original: http://blog.evan.pro/creating-a-simple-view-helper-in-zend-framework-2