symfony入门学习资料之十二:Twig模板Extension(在模板中使用json_decode)

symfony入门学习资料之十二:Twig模板Extension(在模板中使用json_decode)

 

采用twig技术,对其进行扩展是非常方便和容易的.

第一步:通过创建类可以自然而然的进行扩展。

namespace Acme\DemoBundle\Twig\Extension;
use Symfony\Component\DependencyInjection\ContainerInterface; 
use \Twig_Extension;
class VarsExtension extends Twig_Extension
{

    protected $container;

    public function __construct(ContainerInterface $container)
    {

        $this->container = $container;

    }
  
    public function getName()
    {

        return 'some.extension';

    }
  
    public function getFilters() {

        return array(
            'json_decode'   => new \Twig_Filter_Method($this, 'jsonDecode'),
        );
    }

    public function jsonDecode($str) {
        return json_decode($str);

    }
}

第二步:在services.xml的文件中注册建立类

       

       

或者在yml文件中注册也可以


services:
    jy.admin.twig.extension:
        class: Jy\AdminBundle\Twig\JsonExtension
        tags:
             - { name: twig.extension }
        arguments: [ @service_container ]
 

最后一步,在需要用到的模板文件中扩展使用。

{% set obj = form_label(category) | json_decode %}

 

你可能感兴趣的:(Symfony,TP5,Edusoho)