如何访问twig loader文件系统中的容器?

时间:2014-02-05 21:56:25

标签: symfony twig

我正在努力让模板AB测试启动并运行,我需要访问树枝加载器中的容器,这样如果用户参与我们的AB测试,我就可以换出模板。到目前为止,我一直在尝试:

twig.loader.filesystem:
    class: %twig.loader.filesystem.class%
    arguments: [%templating.locator%, %templating.name_parser%, @service_container]

project.components.loader.project_twig_loader:
    class: %twig.loader.filesystem.class%
    arguments: [Project\Components\Extensions\TemplatingProjectTemplateLocator, Project\Components\Extensions\Templating\ProjectTemplateNameParser, @service_container]
    tags:
        - { name: twig.loader }  

但他们只是错误抛出错误。

但是,如果我移除容器并进行下面的设置,则可以正常工作。

在我的parameters.yml中:

parameters:
    twig.loader.filesystem.class: Project\Components\Extensions\TwigFilesystemLoader\ProjectFilesystemLoader

在我的档案中:

class ProjectFilesystemLoader extends \Twig_Loader_Filesystem
{
/**
 * @var \Symfony\Component\Config\FileLocatorInterface
 */
protected $locator;

/**
 * @var \Symfony\Component\Templating\TemplateNameParserInterface
 */
protected $parser;

/**
 * @var \Symfony\Component\DependencyInjection\ContainerInterface
 */
protected $container;

public function __construct(FileLocatorInterface $locator, TemplateNameParserInterface $parser, ContainerInterface $container)
{
    parent::__construct(array());

    $this->locator = $locator;
    $this->parser = $parser;
    $this->container = $container;
    $this->cache = array();
}

protected function findTemplate($template)
{
 ...
}
}

所以我输了,我怎么把容器放进树枝装载机?

0 个答案:

没有答案