我只是想要一些有关MVC做事方式的建议。我正在使用codeigniter,我想知道网站的每页有一个控制器还是所有页面有一个控制器更好?
假设我有一个简单的网站,您可以在其中访问主页,登录,创建帐户并与管理员联系。
拥有以下控制器会更好:frontend(index),登录名,帐户,联系人,或者拥有一个名为frontend的控制器,或者具有诸如login,createAccount,contact之类的动作的任何东西?
您何时知道在某种情况下使用一个控制器是否更好?
我只是想要一些有关MVC做事方式的建议。我正在使用codeigniter,我想知道网站的每页有一个控制器还是所有页面有一个控制器更好?
假设我有一个简单的网站,您可以在其中访问主页,登录,创建帐户并与管理员联系。
拥有以下控制器会更好:frontend(index),登录名,帐户,联系人,或者拥有一个名为frontend的控制器,或者具有诸如login,createAccount,contact之类的动作的任何东西?
您何时知道在某种情况下使用一个控制器是否更好?
Answers:
最好每个逻辑单元都有一个控制器,例如AccountController(登录,注册),PagesController(家庭,联系人),Backend-> PagesController(创建,编辑,删除),UsersController(创建,编辑,删除)等等。
@Rushino您在这里有两个“应用程序”-前端(针对读者)和后端(针对管理员)。对于每组功能,您都有一个控制器。
登录就是这样一个组,其中包括表单HTML的生成(字段,调用视图),以及表单的处理(验证,与模型连接)。因此,“登录”是一个具有两个动作的控制器-generateForm和handleForm。
页面分为仅显示页面的前端应用程序和允许以不同方式编辑,删除,创建甚至可能查看页面的后端应用程序。主页至少在前端是“仅另一页”,因此适合页面控制器。在后端,其逻辑可能足够不同,以至于有理由完全拥有一个不同的控制器。
对于用户-如果用户可以注册自己,则将需要一个前端控制器,但如果没有,则与用户相关的所有工作都将在后端进行。
请注意,每个后端功能可能都需要生成器和处理程序。不过,这些东西可以通过通用表单生成器插件拆分为配置文件。
总而言之,它看起来像这样:
Frontend
Pages
View, Handle
Login
View, Handle
Users
Register (note that the handler can be the same as 'create' on the backend)
Contact
View
Handle
Backend
Users
Create, Delete, Edit, Update, View
Pages
Create, Delete, Edit, Update, View
我认为您可以采用其他方法:
一个主控制器作为前门,向特定控制器发送请求。这样,您可以使用此前端控制器来检查常见的事情,例如用户身份验证,谷歌分析和您想做的任何其他常规事情,并保持MVC结构纯净。
这不是我的主意,但Symfony Framework是以这种方式工作的,因此我可以告诉您,根据我的经验,这是实现前端的一种非常不错的方式。