Symfony 2 - 树枝扩展

Symfony 2 - twig extension

我正在尝试制作一个树枝扩展,它将使用我的一项服务。

我得到的错误是:

Uncaught exception 'Symfony\Component\DependencyInjection\Exception\InvalidArgumentException' with message 'A "tags" entry must be an array for service "tagformater_extension"

我的services.yml:

nobookchoosen_service:
    class: AppBundle\Service\nobookchoosenService
    arguments:
        - @request_stack
        - @router

logger_service:
    class: AppBundle\Service\loggerService
    arguments: ["@doctrine.orm.entity_manager", "@security.context"]

tags_service:
    class:  AppBundle\Service\tagsService
    arguments: [%tags%]

documents_service:
    class:  AppBundle\Service\documentsService
    arguments: ["@tags_service"]

tagformater_extension:
    class: AppBundle\Twig\tagformaterExtension
    arguments: ["@tags_service"]
    public: false
    tags:
        { name: twig.extension }

和扩展文件:

<?php
namespace AppBundle\Twig;

class tagformaterExtension extends \Twig_Extension
{

    protected $tagsService;

    public function __construct($tagsService)
    {
        $this->tagsService = $tagsService
    }

    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('tag', array($this, 'tagFilter')),
        );
    }

    public function tagFilter($tagname)
    {
        $label = "label label-default";
        if(array_key_exists($tagname, $this->tagsConfigArray))
        {
            if($this->tagsConfigArray[$tag]['label']) $label = $this->tagsService->gettaglabel($tagname);
        }

        return "<SPAN CLASS=\"".$label."\">".$tagname."</A>";
    }

    public function getName()
    {
        return 'tagformater_extension';
    }
}

请指教我做错了什么。

标签必须是数组。在 { name: ...}

之前放一个 -
tagformater_extension:
    class: AppBundle\Twig\tagformaterExtension
    arguments: ["@tags_service"]
    public: false
    tags:
        - { name: twig.extension }