Symfony2 にグローバル変数 ( などapp
) をテンプレートに設定しないように指示するには? app
独自の変数を設定したいのですがSymfony\Bundle\FrameworkBundle\Templating\GlobalVariables Object
、コントローラーで上書きするとイベント型になります。
質問する
511 次
1 に答える
1
私はそれがそのような可能性だと思います(基本的に、app
varが便利になる原因はありませんでした;))
app
global はSymfony\Bundle\TwigBundle\TwigEngine
(twig の場合) のコンストラクターとSymfony\Bundle\FrameworkBundle\Templating\PhpEngine
(php の場合)のコンストラクターに追加されます。
ただし、コンストラクターに渡さない場合GlobalVariables
(null の場合もあります)、app
変数は設定されません。templating
したがって、次のようにサービスを上書きできます。
<service id="templating" class="Acme\DemoBundle\Templating\TwigEngine">
<argument type="service" id="twig" />
<argument type="service" id="templating.name_parser" />
<argument type="service" id="templating.locator" />
</service>
およびphpファイル:
<?php
namespace Acme\DemoBundle\Templating;
use Symfony\Bundle\TwigBundle\TwigEngine as BaseEngine;
use Symfony\Component\Templating\TemplateNameParserInterface;
use Symfony\Component\Config\FileLocatorInterface;
class TwigEngine extends BaseEngine
{
public function __construct(\Twig_Environment $environment, TemplateNameParserInterface $parser, FileLocatorInterface $locator)
{
parent::__construct($environment, $parser, $locator);
}
}
それがなくても独自のグローバルを実装できることに注意してください...元のtemplating.globals
サービスを置き換える独自のサービスを定義するだけです。
于 2013-02-06T10:43:13.853 に答える