我刚刚开始学习Zend(&OOM PHP),我花了最近4-5周的学习,教程,书籍等。我感觉很好但是会陷入模型中(好吧,我在学)。我现在开始我的第一个应用程序(甚至工作);它至少有5个主要部分(包括登录+将需要ACL),一对将有最多10-12个子部分,如admin:创建用户,编辑用户等。
我创建了一个单一的布局,并使用工作链接创建了大部分页面视图,并且已经完成了一些表单。
我现在主要担心的是我应该在失控之前重构和制作主要部分的模块,还是我什么都不担心。我认为我做错的一件事是,我有一个'AdminController'除了引入管理员'视图'之外什么都不做,只是链接到'UserController'中的每个'用户'动作。我想也许我应该把用户操作放在AdminController中。我也在考虑,我应该制作一个'管理'模块,'报告'模块,'auth'模块等。或者最终有8个控制器并且正在增长是正常的吗?我已经倾向于为了我自己的理智而制作和维护开发人员的站点地图,更不用说我想尽可能做到最好:)
答案 0 :(得分:2)
原则上,我喜欢为每组功能提供可插入模块的想法 - 新闻,用户,画廊等。“插入”该模块将为后端管理员和前端提供功能显示。它是一个自包含的地方,可以放置所有功能 - 模型,动作助手,视图助手,视图脚本。等 - 您需要该内容区域。每个模块可能有两个控制器 - News_BackendController和News_FrontendController - 专用于他们的特定区域。
但在实践中,我发现ZF模块很难实现。我知道比我聪明的人 - 一个低标准,确定 - 可以使一切正常,但我从来没有幸运。
所以我通常最终得到两个模块 - 前端和后端。例如,对于新闻功能,我在后端模块中有一个用于管理内容的新闻控制器;前端模块中的另一个新闻控制器,用于显示它。
在此设置中,我的关键点在于放置前端和管理员共有的模型功能。一个想法是将它放在一个单独的库中,然后创建特定于模块的模型,为任何特定于模块的功能扩展这些模型。类似的东西:
MyLibary_Model_News
了解常见新闻。
Frontend_Model_News extends MyLibrary_Model_News
用于任何仅限前端的新闻功能,如果有的话。
Admin_Model_News extends MyLibrary_Model_News
任何仅后端新闻功能,如果有的话。
只是一些想法。一如既往,YMMV。