MVC设计-CodeIgniter MVC Web应用程序项目中可以/应该/必须有多少个控制器? - php

我正在使用CodeIgniter MVC框架在PHP中构建一个相对简单的Web应用程序。我以前曾经开发过PHP应用程序,但从来没有严格遵守过。我已经习惯了MVC框架,但是有两个问题不断使我重回画板,这减缓了开发速度。

Web应用程序可以有多少个控制器,是否有最佳实践?我的应用程序有一个(相当大的)控制器,其中包括业务逻辑,表单提交逻辑等。在此有效的同时,我正在讨论使用单独的控制器是否有意义(例如,一个用于表单处理和提交,另一个用于用户管理(会话,登录,注册)等。然后,我也不想对此进行过度设计。我要挂断的部分是:控制器具有一个“默认”索引函数,该函数在父URL处加载。所有业务逻辑都从此处开始(例如,表单提交,对数据进行处理等)。默认情况下,随着开发的继续,我只能在同一控制器中创建新功能。它有效,但是我的目标之一就是学习最佳实践,这告诉我我可能会以错误的方式进行尝试。
如果模型仅用于数据库读/写功能,或者我也可以在其中放置“辅助”功能,例如generate_random_number,validate_login_credentials,login_session,logout_session等。

参考方案

(这是我的主观意见-对我很好)

模型应该是整个应用程序的基础。这些模型应处理所有业务逻辑和数据库管理。同时,控制器应尽可能地薄,仅在模型和视图之间真正提供接口。

例如,在登录屏幕中,控制器应为用户提供登录视图。当用户输入他的信息时,控制器应处理输入验证并将输入转发给模型,模型应以“成功”或“失败”作为响应。因此,控制器应分别将用户重定向到仪表板,或将其发送回带有错误消息的登录屏幕-分别。

总结:模型应该胖,控制器应该瘦。

CodeIgniter ODBC问题 - php

好吧,我已经构建了一个用于MSSQL的应用程序,最初以这种方式运行它,我购买了一台新计算机,出于某种奇怪的原因,它不允许我通过MSSQL连接。因此,我设置了ODBC。它连接良好,但似乎讨厌活动记录。我将不得不重写所有查询吗?还是我想念的东西。我收到这样的错误。A Database Error Occurred Error Number: 37000 [Mic…

如何在PHP中检查数组是否为空(Codeigniter) - php

这是我的代码示例:public function show($imei,$start_time,$end_time,$dateto) { $from_time = str_replace('-','/',$start_time); $fromi=strtotime($from_time . ' ' …

在Codeigniter中以数组形式获取查询结果 - php

我有一个查询,如何获取结果作为数组? php大神给出的解决方案 像这样:$rs = $this->db->query(...); $array = $rs->result_array(); https://www.codeigniter.com/user_guide/database/results.html

加载CodeIgniter库的替代方法,以便它们与自动完成功能一起正常运行 - php

在CodeIgniter中,可以像下面这样加载库和模型:$my_library = new my_library(); 之所以要这样做,是因为使用$this->load时,我使用的编辑器(Komodo Edit)无法识别用于自动完成的类。 参考方案 在某些情况下,可以像这样加载类,但是除非绝对必要,否则您应该坚持使用CodeIgniter加载器类。我敦…

在Codeigniter中定义应用程序常数 - php

我想知道一种在Codeigniter中定义应用程序常量的干净方法。我不想更改任何codeigniter的本机文件。因此,我不想在application/config/constants.php中定义它,因为当我需要迁移到较新版本的代码点火器时,我将无法直接复制codeigniter的本机文件。我创建了一个文件application/config/my_con…