Non vi resta che creare una classe che implementi la vostra funzione di supporto e si estende
Symfony\Component\Templating\Helper\Helper
come questo:
namespace Acme\Foo\Helper;
use Symfony\Component\Templating\Helper\Helper;
class MyViewHelper extends Helper {
public function helpMe() {
// do something
return $value;
}
/**
* @inheritdoc
*/
public function getName() {
return "anyCanonicalServiceName";
}
}
Poi dovete promuovere il vostro aiutante come un servizio con uno speciale tag ad es
Resources/config/services.yml
services:
your_service_name:
class: Acme\Foo\Helper\MyViewHelper
# the tag alias "myViewHelper" is later used in the view to access your service
tags:
- { name: templating.helper, alias: myViewHelper }
Ora è possibile accedere alla aiutante in una vista del genere:
echo $view['myViewHelper']->helpMe();
fonte
2014-07-09 09:00:17
Che cosa si intende per "Creare un ViewHelper"? Se si desidera aggiungere funzioni personalizzate/filtro/ecc. Al ramoscello, leggere http://symfony.com/doc/current/cookbook/templating/twig_extension.html – AdrienBrault
ViewHelper è un modo per chiamare una funzione di supporto nelle viste (modelli). Non so come si chiami in Symfony2 ma Zend lo chiama "viewHelper". A proposito, non uso Twig ma PHP. – Emerald214
È possibile estendere il ramoscello per creare filtri e funzioni di ramoscello. Si prega di consultare la documentazione ufficiale del ramoscello http://twig.sensiolabs.org/doc/advanced.html – Praveesh