Symfony1 Symfony:动作与x2B之间的区别;部分和一个组件

Symfony1 Symfony:动作与x2B之间的区别;部分和一个组件,symfony1,Symfony1,为什么我应该使用一个组件而不是一个动作来呈现一个部分 如果动作可以呈现局部,那么什么时候使用组件更好 告诉我吧 当您希望在站点的不同部分包含某种类型的块(例如,“前10名销售”或类似内容)时,将使用Javi组件,这需要一些控制器代码来呈现。您可以使用include_component($module_name,$component_name,array('var1'=>$var1)),将组件的输出包含在动作/部分/另一组件的另一个模板中; include_component($module_na

为什么我应该使用一个组件而不是一个动作来呈现一个部分

如果动作可以呈现局部,那么什么时候使用组件更好

告诉我吧


当您希望在站点的不同部分包含某种类型的块(例如,“前10名销售”或类似内容)时,将使用Javi组件,这需要一些控制器代码来呈现。您可以使用include_component($module_name,$component_name,array('var1'=>$var1)),将组件的输出包含在动作/部分/另一组件的另一个模板中; include_component($module_name, $component_name, array('var1' => $var1)); 一个动作应该是由浏览器直接调用的,所以你不能将它的输出包含在另一个模板中(没有某种黑客攻击)
将组件视为可在任何地方包含的可重用html块,而不是呈现整个页面并发送到浏览器的操作部分是可在任何视图页面中重用的“模板”。它简单快速。所有$数据必须作为参数传递给分部。如有可能,应首选imo

组件就像一个“具有自己操作的模板”,可以在任何视图页面中重用。更强大,但比部分更慢。如果您有需要业务逻辑的部分(即操作/控制器),请使用


操作不用于呈现片段。将部分用作独立的“迷你模板”,将组件用作“迷你操作和模板”。谢谢!,这就是我所寻找的:“一个动作应该由浏览器直接调用,所以你不能将它的输出包含在另一个模板中(没有某种黑客手段)”。但我现在的问题是:您对删除组件并添加一种方法来在模板中包含操作(与组件的方式相同)有何看法??我正在“思考”要求将其作为一项功能,以使symfony更简单。你可能会要求已经存在的东西-组件的设计完全是为了在模板中包含“操作”。删除组件不是一个好主意,因为它们是操作的轻量级版本(他们不通过路由系统、过滤器等,因此工作效率更高)