我想对我的建筑有一些反馈。我的Zend Framework项目包含几个模块和我们构建页面的模块。它与默认的ZF应用程序略有不同,因为多个模块可以创建一个页面。例如,联系页面由零件文本(文本模块)和联系表单(联系模块)组成。或者三列页面有三个文本模块在一页上运行。到目前为止这么好(这一切都很好)。ZF的建筑咨询admin
管理员界面
现在,我们的管理员。在管理界面中,我们编辑一个页面(而不是一个模块!),这使得它很难。一个页面可以有一个或多个Zend_Form实例。例如,一个文本可以用textarea编辑,一个联系表格形成一些输入字段。这些需要作为更大的Zend_Form实例的子表单显示在视图中。还需要显示html(查看脚本),例如列出博客文章或投资组合中的项目。并非所有的模块都是“可管理的”(例如我们的站点地图,没有什么可配置的),但是那些需要支持创建,更新和删除的模块。
当前架构
我们的服务现在的工作。很容易检查(存在类Portfolio_Service_Admin并执行Admin_Service_AdminInterface?)。但是一个投资组合已经变得很难实施:该服务扮演着一种控制器的角色,支持投资组合的创建,更新和删除,但也包括投资组合类别的CRUD和投资组合项目的CRUD(在一个类中!)。
如果这是不明确的,我可以添加更多的信息我们目前的做法
什么呢?
因为服务现在作为一个排序的控制器,I是控制器的思维(杜)。唯一的缺点是控制器需要返回表单将该模块表单添加为更大表单的子表单(而不是添加到响应!)。此外,一个页面上的多个模块导致dispatchloop的很多迭代,这不是非常有效。
所以:你有什么建议,如何控制呢?
那么在你的管理区域,编辑一个页面的时候,Zend_Form有很多子表单提交到哪里?你有没有足够智能的页面控制器可以通过子窗体并将每个部分分配给相应的模块? – 2011-01-14 14:02:38