13
A
回答
16
使用includes,您可以逐字包含整個模板。該模板可以訪問當前在範圍內的任何模板變量。
使用宏,您可以在Twig中定義一種函數(不要與Twig函數混淆,Twig函數可以訪問其他應用程序邏輯,而不僅僅是傳遞給模板的數據),這些函數可以渲染給定的對象的特定組件。所以你可以有一個宏來呈現,比如購物清單,它將購物清單作爲一個參數 - 然後你可以重用這個宏而不必擔心是否將數據以相同的方式傳遞到了模板中。未明確傳遞給宏的變量不在該宏的範圍內。
一個宏應該真的做一個特定的任務來獲取一些數據並呈現一個可重用的組件。一個包含可以包含任何大塊的東西 - 它更多取決於你。 Twig模板的工作方式的可擴展性與Smarty類似,意味着您可能會使用包含更少的設計 - 但仍然有一些用例可能會避免模板中的重複。
2
我是Symfony2的新手,但我認爲樹枝宏和包含的區別如下。
include:用於定義頁面中的公共部分,如頁眉,側邊欄或插槽。
宏:用於定義與視圖相關的功能,如分頁。
相關問題
- 1. Twig包括CSS或Java腳本
- 2. Twig + jQuery vs angularjs
- 3. SAS宏包括警衛
- 4. #包括一個x-宏
- 5. C++宏定義包括點?
- 6. 從PHP呈現Twig宏?
- 7. 使用TWIG加載宏
- 8. PHP包括VS循環
- 9. php包括vs jquery負載
- 10. 包括PHP的file_get_contents VS
- 11. 包括「winmain.h」vs <windows.h>
- 12. __autoload vs包括家庭
- 13. WiX包括vs片段
- 14. 聯VS包括文件
- 15. 包括vs定位路徑
- 16. 搖籃排除VS包括
- 17. 向前聲明VS包括
- 18. PHP require vs grails包括
- 19. jsp包括vs jquery ajax
- 20. PHP包括VS include_once(速度)
- 21. jruby包括java類的性能vs包括一個包
- 22. Smarty vs Twig的差異
- 23. QObject與宏的錯誤,包括
- 24. 將表導出爲excel,包括宏
- 25. 宏更新包括頁眉和頁腳
- 26. LibreOffice包括一個過濾器宏
- 27. 枝條嵌入vs包括,任何使用原因包括
- 28. 枝條標籤包括vs功能包括
- 29. 客戶端包括vs服務器端包括?
- 30. 包括<x> VS包括<x.h>
有關**模板的部分可以訪問當前在範圍內的任何模板變量**並不完全正確。你可以這樣做:'{%include'template.html.twig'with {'custom_var':custom_value} only%}'這將阻止包含的模板訪問父上下文。這將使'include'功能與'macro'非常相似,主要區別在於它們是如何聲明和調用的。 – Karolis