我想使用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