我想使用symfony中未开发的网站的树枝的一些内置symfony2扩展(例如:humanize,yaml_dump),但使用树枝引擎。我可以这样做吗?如何在没有symfony2的情况下使用symfony2树枝扩展
回答
symfony/twig-bridge
包提供了symfony特有的树枝扩展。
这些包括提供yaml_dump
过滤器的YamlExtension和提供humanize
过滤器的FormExtension。
扩展名可以在Extension
文件夹中找到。
我强烈建议您通过composer
安装软件包以自动获取软件包的依赖关系。
composer require symfony/twig-bridge:~2.3
其他作曲家会自动为您自动注册自动加载器中的类(vendor/autoload.php
)。
现在您只需按照documentation中所述将扩展添加到树枝。
$twig->addExtension(new \Symfony\Bridge\Twig\Extension\YamlExtension());
// ...
谢谢。还有可能听起来很渺茫:是否有可能配置树枝以便您不必每次都像内置扩展一样加载扩展? – user2268997
一个完整的例子,有一个扩展类和快速扩展(新过滤器):
<?php
require_once("vendor/autoload.php");
$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
// here we add the extension class (taken from @nifr answer)
$twig->addExtension(new \Symfony\Bridge\Twig\Extension\YamlExtension());
// here we add a new filter quickly
$filter = new Twig_SimpleFilter('paragraph', function ($argument) {
return "<p>{$argument}</p>";
}, array('pre_escape' => 'html', 'is_safe' => array('html')));
$twig->addFilter($filter);
// demo
echo $twig->render('{{ "hello" | paragraph }}');
嘿,这里用twig_loader_string是怎么用的?我读了文档,但是无法确定。 – user2268997
它被用于''twig-> render()'接受一个字符串而不是文件作为第一个参数。 –
- 1. 我在树枝扩展类的Symfony2
- 2. Symfony2:扩展树枝日期字段
- 3. Symfony2的多枝杈扩展
- 4. Symfony2中有树枝
- 5. 从Symfony2的树枝扩展中使用帮助器服务
- 6. Symfony2的jQuery的在树枝
- 7. 的foreach在树枝的Symfony2
- 8. Symfony2的app.user在树枝
- 9. Symfony2,树枝和JavaScript
- 10. Symfony2的:在一根树枝过滤器扩展
- 11. 得到图像扩展在小枝Symfony2
- 12. 如何在树枝模板Symfony2的
- 13. 的Symfony2 /枝条jQuery的扩展模板
- 14. CKEditor在树枝模板+ Symfony2
- 15. 如何在没有.jsx扩展名的情况下使用webpack?
- 16. Symfony2中如何呈现在树枝
- 17. 使用CsvFileLoader的树枝Symfony2翻译
- 18. 树枝逃生( 'JS')Symfony2的
- 19. 在没有孩子的情况下摆脱'+'扩展树节点
- 20. Symfony2如何在不扩展ControllerResolver的情况下找到正确的控制器?
- 21. Symfony2自定义树枝扩展 - 未找到类
- 22. Symfony2使用树枝基地页Inharitance
- 23. 如何在树枝和Symfony2中使用或使用条件
- 24. Symfony2树枝安全政策
- 25. Symfony2树枝加载模板
- 26. 树枝延伸 - symfony2环境
- 27. Symfony2树枝无限深度
- 28. form_errors(表格)symfony2树枝
- 29. symfony2 form树枝输入值
- 30. 如何使用树枝创建扩展
你检查过枝(不symfony的)手册?它显示了如何添加扩展。 http://twig.sensiolabs.org/doc/api.html#using-extensions – Cerad
是的,但我不知道如何访问symfony2的内置扩展 – user2268997