2013-01-18 4 views
5

Come creare un ViewHelper in Symfony 2. Ho letto tutta la documentazione ma non descrive alcun termine del genere. Ha solo l'autoloading e il servizio. http://symfony.com/doc/current/cookbook/index.htmlCrea ViewHelper in Symfony 2

+1

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

+0

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

+0

È 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

risposta

3

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();