Magento:核心前端动作控制器和块控制器之间的区别


Magento: difference between core front action controllers and block controllers

我目前正在开发一个自定义模块,在该模块中,我有一个扩展Mage_Core _controller_Front_Action的控制器来处理请求。这个控制器加载并呈现我在xml布局文件中定义的块
这些块中的每一个都可以在类型字段中指定它们自己的块控制器。我想知道的是,将变量分配给模板文件的最佳实践是什么?假设我有一个我想在模板上显示的产品列表。我是在块控制器中创建一个函数并在模板文件中调用该函数,还是应该将产品列表分配给核心控制器中的块
我知道这个问题很有理论性,我只是想知道每个选项的好处是什么,以及在马根托的最佳实践是什么。

通常,好的做法是尽可能地保持块"独立"。在这种情况下,这意味着在块控制器中分配模板/视图变量。这将使您可以在其他页面上重复使用您的块而不进行更改,并将所有内容保持在一个位置。因此,如果指定的块中发生了变化,您只需要更改块控制器,否则您可能也需要更改前控制器。在某些情况下,块会使用来自前控制器的数据。但这是一种特殊情况,应该尽可能避免。