在实现闪存游戏门户时,我决定“组件化”我的视图。重复的元素是不需要思考的,它们的模板被放置在元素中。我使用Html助手通过视图将数据从控制器传递到元素。
这一切都很好,除了一个非常小的元素子集之外,我还没有遇到太多复杂逻辑的问题,以便对参数进行按摩--换句话说,它们都是完全通过的--因此对元素非常透明。
这是我的问题所在。我意识到我有20多个元素,它们远远超过了我那微不足道的8-10个视图和3个控制器。我还想把几乎所有的东西都变成一个“组件”,并把它转换成一个元素。例如,我有一个评级控件,只在一个页面上使用--游戏页面--最近我考虑将它转换为一个元素。我想知道我是不是在这一点上做得太过分了。
因此,总之,我的问题归结为使用CakePHP helper时的最佳实践是什么,以及是什么使一大块Html成为元素的候选(除了只编写一次的显而易见的)。我读过cakePHP手册,它给出了“粗略”的指导原则,但我正在寻找一些“领域水平”或真实世界经验来指导我的决定。
提亚
发布于 2011-08-09 21:03:01
我认为你把它降到了微观层面是正确的,即使是一个只在一个页面上使用的元素。这是一个很好的方法,让一切都很隔阂。
我主要使用CodeIgniter,但发现同样的做法非常有益。想象一下你想修改你的评级控制..。您只需复制元素、重命名、修改和引用新元素。
只是很干净!
发布于 2015-09-11 20:31:56
你走在正确的轨道上。通常,您希望使用一个元素来清理代码和减少HTML的数量,或者创建一个可重用的代码段。
我假设您使用的是CakePHP3,它也有视图单元格。视图单元实际上是一个带有迷你控制器的元素.这还将有助于减少父控制器中的代码,并允许单元格被重用。
根据我的经验,如果不需要逻辑,元素就是方法,当需要逻辑时,我使用单元格。
您可以在CakePHP手册中了解更多的不同之处。我包含了两个参考资料,一个是元素,一个是单元格。
元素:http://book.cakephp.org/3.0/en/views.html#elements
细胞:http://book.cakephp.org/3.0/en/views/cells.html
https://softwareengineering.stackexchange.com/questions/93721
复制相似问题