Zend framework 用于多级选项卡式界面的控制器、操作帮助程序或视图帮助程序

Zend framework 用于多级选项卡式界面的控制器、操作帮助程序或视图帮助程序,zend-framework,zend-view,zend-controller,Zend Framework,Zend View,Zend Controller,这个问题与所提出的关于处理选项卡式接口的最佳实践的问题有关。它引用了一篇题为“为什么Zend Framework Actionstack是邪恶的”的博客文章,其中概述了您应该为将被重用的元素使用partials和view helpers。在元素必须处理一些输入之前,这是正常的,在这种情况下,视图帮助器不是答案。这就是你使用动作助手的地方,Matthew Weier O'Phinney在他的博客文章《使用动作助手实现可重用的小部件》中谈到了这个用例 在阅读了这些观点之后,我似乎对我的界面的最佳行动

这个问题与所提出的关于处理选项卡式接口的最佳实践的问题有关。它引用了一篇题为“为什么Zend Framework Actionstack是邪恶的”的博客文章,其中概述了您应该为将被重用的元素使用partials和view helpers。在元素必须处理一些输入之前,这是正常的,在这种情况下,视图帮助器不是答案。这就是你使用动作助手的地方,Matthew Weier O'Phinney在他的博客文章《使用动作助手实现可重用的小部件》中谈到了这个用例

在阅读了这些观点之后,我似乎对我的界面的最佳行动方案更加困惑。该网站将由三个主要选项卡组成:案例、员工和部门。每个选项卡都将遵循类似的布局,包括选择器/搜索表、(案例|员工|部门)摘要,然后是另一个具有垂直选项卡菜单的区域。主选项卡将有一些垂直选项卡项,除了显示的信息外,这些项是相同的

问题是如何围绕此界面构建视图、帮助程序和控制器。我在考虑设立一个索引、案例、员工和部门主管。创建一个动作助手,该助手将重用每个主要选项卡的视图,但使用请求数据确定当前选定的(案例|员工|部门)。使用单个选项卡控制器来处理垂直选项卡内容的jqueryajax请求,并将输出委托给视图助手,该视图助手将重用公共视图。还可以使用单独的选项卡控制器来处理jQuery ajax crud操作


这是最好的方法,还是有更好更有效的方法?

我会为三个主要选项卡中的每一个创建单独的控制器。您描述的垂直选项卡将对应于这些控制器上的操作

对于呈现所有这些导航选项卡(顶级和垂直),听起来答案是<代码>Zend_导航()


您可以将所有结构化导航数据(可能从INI文件或XML文件读取,甚至从结构化数组读取)放入单个
Zend_navigation
容器中,然后呈现“活动”分支。

感谢您的及时回复。这正是我到目前为止所做的,但我关心的是,我对主选项卡有相同的设计,但对它们有三种不同的视图。对于通过ajax访问的垂直视图,它们也使用相同的设计,但使用不同的视图。为了保持拥有胖模型和瘦控制器的做法,我不应该为这些视图的呈现和管理构建可重用的帮助器(视图|操作)吗?我会对所有选项卡使用一个操作,然后在视图中使用部分来呈现每个选项卡内容(这样当您更改选项卡时,就不必重新加载页面),如David所述,allso使用Zend_导航来显示选项卡,为了保持控制器的精简,您可以使用3种不同的方法在模型中移动大部分选项卡数据构建(每个选项卡一个,如果部分代码将在应用程序的其他部分上重复使用,则eaven更多)我不知道这会如何影响性能,但它会改善用户体验。我明白@poelinca的观点:可能是一个带3个动作的控制器。每个操作都可以执行填充垂直选项卡所需的所有任务。然后是一些很酷的客户端内容,这样您就可以在不重新加载页面的情况下查看所有内容。但我认为你的问题不止这些。这三个“页面”听起来“结构”相似:搜索表、摘要、选项卡。因此,尝试创建一个足以“获取”所需数据(搜索表、摘要等)的参数化操作帮助器,然后使用类似的参数化视图帮助器和部分进行渲染似乎是合理的。如果确实如此,我现在使用zend navigation(ZN)呈现选项卡,并且使用索引控制器中定义的数据在部分循环中呈现选项卡内容。垂直选项卡由ZN呈现,选项卡内容由可重用视图辅助工具呈现。jQuery将在内容之间切换,在切换之前,它将检查服务器是否有要加载的内容的最新版本。影响数据的操作将显示在模式窗口中并使用控制器,例如新客户端将通过客户端控制器、通过工作人员控制器编辑工作人员等。感谢您的帮助。很高兴我能提供一些帮助。;-)