我具有分层阵列:什么是放置视图功能的最佳场所?
array(
'id' => 4, //id of current element
'parent' => 2, //id of parent element
'value' => '', //some value
'children' => array() //array of similar arrays
)
每个元素可以包含多个元素,它可以包含多个元件等的足以说,最好的方式来迭代此是使用功能,这将致电给自己处理儿童:
function print_menu_hierarchy($hierarchy, $depth = 0) {
foreach ($hierarchy as $item) {
echo '<tr>';
echo ' <td>' . $item['id'] . '</td>';
echo ' <td>' . str_repeat(' ', $depth * 6) . $item['value'] . '</td>';
echo '</tr>';
if (count($item['children'])) {
print_menu_hierarchy($item['children'], $depth + 1);
}
}
}
我的问题是:放哪个函数?
要维护MVC,它必须是视图的一部分。所以,无论是帮手还是模板。
助手很明显,但将此函数放在助手中会使修改视图更困难。每当我改变模板中的某些东西时,我也必须改变助手。此外,这个功能越来越大,保持干净是很难的。
模板也是不错的选择,定义函数应该在其他地方完成。
任何人有更好的主意在哪里把这个?
(我正在使用symfony 1.4)
我期望佣工只应以某种方式修改数据输出或其他处理。你的功能是创建一个HTML结构的输出,所以我会把它放到视图模板也许......通过这你只能编辑一个模板,并保持只在一个地方的变化...... – shadyyx 2011-04-20 10:12:22
听起来像一个很好的例子领导程序员的模式。使用设计模式让您的生活更轻松,并使您能够编写更敏捷的代码,而不是限制您并阻止您表达。 – 2011-04-20 10:17:05