Model view controller Zend Framework::一般应用程序设计问题

Model view controller Zend Framework::一般应用程序设计问题,model-view-controller,zend-framework,Model View Controller,Zend Framework,我刚开始学习Zend(&OO PHP),在过去的4-5周里我一直在学习、教程、书籍等。我感觉不错,但会在模型中陷入困境(没关系,我正在学习)。我现在开始我的第一个应用程序(甚至是工作);它至少有5个主要部分(包括登录+将需要ACL),还有几个部分将有多达10-12个子部分,如管理:创建用户、编辑用户等 我创建了一个单一的布局,并使大多数页面视图具有工作链接,并且已经完成了一些表单 我现在主要关心的是,我应该在主要部分失控之前重构并制作模块,还是什么都不担心。我认为我做错了一件事,那就是我有一个“

我刚开始学习Zend(&OO PHP),在过去的4-5周里我一直在学习、教程、书籍等。我感觉不错,但会在模型中陷入困境(没关系,我正在学习)。我现在开始我的第一个应用程序(甚至是工作);它至少有5个主要部分(包括登录+将需要ACL),还有几个部分将有多达10-12个子部分,如管理:创建用户、编辑用户等

我创建了一个单一的布局,并使大多数页面视图具有工作链接,并且已经完成了一些表单


我现在主要关心的是,我应该在主要部分失控之前重构并制作模块,还是什么都不担心。我认为我做错了一件事,那就是我有一个“AdminController”,它什么都不做,只是引入了admin“视图”,它只不过是指向“UserController”中每个“用户”操作的链接。我在想也许我应该把用户操作放在AdminController中。我也在想,我应该做一个“管理”模块、“报告”模块、“身份验证”模块,等等。或者最终有8个控制器并不断增长是正常的吗?我已经倾向于制作和维护一个开发者的网站地图,这仅仅是为了我自己的理智,更不用说我想做最好的工作:)

原则上,我喜欢为每一组功能——新闻、用户、图库等——设计一个可插入的模块该模块将为后端管理和前端显示提供功能。它是一个自包含的地方,可以放置所有功能—模型、操作帮助器、视图帮助器、视图脚本。等-您需要的内容区域。每个模块可能有两个控制器-News_BackendController和News_FrontendController-专用于其特定区域

但在实践中,我发现ZF模块让这变得很难。我知道比我聪明的人——当然是一个低标准——可以让一切顺利,但我从来没有这么幸运过

因此,我通常以两个模块结束-前端和后端。例如,对于新闻功能,我在后端模块中有一个新闻控制器,用于管理内容;前端模块中的另一个新闻控制器用于显示它

在这个设置中,我的难点是如何放置前端和管理员通用的模型功能。一个想法是将其放在一个单独的库中,然后创建特定于模块的模型,将这些模型扩展为任何特定于模块的功能。比如:

MyLibary\u Model\u News
用于常见新闻内容

Frontend_Model_News扩展了MyLibrary_Model_News
的任何仅前端新闻功能(如果有的话)

Admin\u Model\u News扩展了MyLibrary\u Model\u News
用于任何后台新闻功能(如果有的话)


只是一些想法。一如既往,YMMV。

感谢您抽出时间,您的回答让我的视野开阔了一点。我的项目没有“前端”-“后端”,所以我想这会大大减少控制器的增长。该项目将是一个由身份验证/ACL控制的数据库应用程序,但它是一个私有应用程序。