0
我正在使用Symfony 2 /枝條。我有一個Twig擴展,其中包括重載日期過濾器以根據用戶偏好輸出自定義日期格式。枝條延伸可在新的枝條環境中使用
應用程序/配置/ services.yml:
twig.extension.static:
class: %twig_static_extension% # set elsewhere
tags:
- { name: twig.extension }
我需要爲了從數據庫中渲染的模板來初始化一個新的Twig_Environment:
控制器:
$env = new \Twig_Environment(new \Twig_Loader_String());
但我發現這個新環境不會自動包含擴展名。
當然,我可以加載它,如下所示:
$env->addExtension(new FQCN\To\StaticExtension());
有什麼我可以做,使擴展提供給可能被使用的所有枝條的環境?
了一個在TwigEnvironmentPass你真的需要*超載*日期過濾器?用Symfony2創建一個新的過濾器非常簡單,不需要費力去嘗試這種棘手的東西:) – 2013-05-05 12:14:00
我對擴展本身沒有任何問題。我沒有把這個問題寫得太好。我希望當一個新的Twig_Environment被實例化時,任何被定義爲服務的Twig擴展都應該可用,但是我發現它不是。 – ncatnow 2013-05-06 06:11:13
在Symfony2中,您不必關心'Twig_Environment',你的服務在後面被初始化,並且你可以在容器範圍內使用該環境作爲服務。如果您從數據庫中呈現樹枝字符串,可以使用[twigstringbundle](https://packagist.org/packages/r1pp3rj4ck/TwigstringBundle) – 2013-05-06 06:25:15