我正在使用CodeIgniter MVC框架在PHP中构建一个相对简单的web应用程序。我以前开发过PHP应用程序,但从来没有以一种严格的方式。我已经习惯了MVC框架,但是有两个问题一直让我回到绘图板上,而且它正在减慢开发速度。
-
关于web应用程序可以拥有多少控制器是否有最佳实践?我有一个(相当大的)控制器为我的应用程序,包括业务逻辑,表单提交逻辑等。虽然这个工作,我在争论是否有意义有单独的控制器,例如一个用于表单处理和提交,另一个用于用户管理(会话,登录,注册),等等。不过,我也不想把它搞得太复杂。我挂起来的部分是:控制器有一个"默认"索引函数,在父URL加载。所有的业务逻辑都从这里开始(例如,表单提交、处理数据等)。随着开发的继续,我默认只在同一个控制器中创建新函数。它是有效的,但我的部分目标是学习最佳实践,有些东西告诉我,我可能用错了方法。
-
应该模型只有被用于数据库读/写函数,或者我可以把"助手"函数也在那里,例如generate_random_number, validate_login_credentials, login_session, logout_session等
(这是我的主观意见-它对我很好)
模型应该是整个应用程序的核心。模型应该处理所有业务逻辑和数据库管理。同时,控制器应该尽可能的薄,只提供模型和视图之间的接口。
例如,在登录屏幕中,控制器应该向用户提供登录视图。当用户输入信息时,控制器处理输入验证并将输入转发给模型,模型应以"成功"或"失败"响应。因此,控制器应该分别将用户重定向到仪表板,或者将他发送回带有错误消息的登录屏幕。
总结:模型应该是胖的,控制器应该是瘦的。
控制器
这完全取决于应用程序的性质,但通常答案是NO您不应该有"一个相当大的控制器"。
你把一个应用程序拆得越小,它就越容易维护。
模型直接来自Codeigniter文档
模型是设计用来处理数据库中的信息的PHP类。
答案是肯定的,你应该只在数据交互中使用模型。
我觉得你自己回答自己很有趣
"……或者我可以把'helper'函数也放在那里,…"
碰巧Codeigniter有一个处理这类功能的工具…
Codeigniter助手