Php CodeIgniter中库的设计

Php CodeIgniter中库的设计,php,model-view-controller,design-patterns,codeigniter,Php,Model View Controller,Design Patterns,Codeigniter,我即将开始编写我的第一个大型CodeIgniter应用程序,但在开始之前,我想知道库应该扮演什么角色。我是MVC的新手,但据我所知,模型应该是数据结构存储的地方(业务逻辑)。那么,除了控制器之外,库是否也是编写应用程序逻辑的地方?在库中组合模型是个好主意吗 例如,我将编写一个成员管理系统,该系统将具有配置文件和消息。MVC+L(库)设置应该是什么样子?2个模型(配置文件、消息)和组合它们的库?每个对象的库?没有库,只有模型和控制器?我建议只使用模型和控制器。我认为这个库是用于可以重用的逻辑,而不

我即将开始编写我的第一个大型CodeIgniter应用程序,但在开始之前,我想知道库应该扮演什么角色。我是MVC的新手,但据我所知,模型应该是数据结构存储的地方(业务逻辑)。那么,除了控制器之外,库是否也是编写应用程序逻辑的地方?在库中组合模型是个好主意吗


例如,我将编写一个成员管理系统,该系统将具有配置文件和消息。MVC+L(库)设置应该是什么样子?2个模型(配置文件、消息)和组合它们的库?每个对象的库?没有库,只有模型和控制器?

我建议只使用模型和控制器。我认为这个库是用于可以重用的逻辑,而不是特定于应用程序的逻辑。我认为,如果控制器和模型能胜任这项工作,那就去做吧。

我只建议模型和控制器。我认为这个库是用于可以重用的逻辑,而不是特定于应用程序的逻辑。我认为,如果控制器和模型能够完成这项工作,就去做吧。

CodeIgniter中的库只是PHP类。在通常情况下编写PHP类的任何时候,您都可以在CodeIgniter中编写一个“库”

在大多数情况下,与数据库调用或大规模数据操作有关的数据争用应该放在一个模型中。显然,带有少量PHP的HTML进入视图,用户交互属于控制器

您可能需要一个身份验证库,它将是一个PHP类。但是,您可以查看几个开放源代码库,如Tank Auth和DX Auth

经验法则:传统的PHP库通常是一组相关函数,例如日期函数,但在CodeIgniter中,它是一个助手。传统的PHP类/对象是Codeigner库


不要害怕阅读
system/helpers
system/libraries
文件夹中的源代码

CodeIgniter中的库只是PHP类。在通常情况下编写PHP类的任何时候,您都可以在CodeIgniter中编写一个“库”

在大多数情况下,与数据库调用或大规模数据操作有关的数据争用应该放在一个模型中。显然,带有少量PHP的HTML进入视图,用户交互属于控制器

您可能需要一个身份验证库,它将是一个PHP类。但是,您可以查看几个开放源代码库,如Tank Auth和DX Auth

经验法则:传统的PHP库通常是一组相关函数,例如日期函数,但在CodeIgniter中,它是一个助手。传统的PHP类/对象是Codeigner库


永远不要害怕阅读
系统/助手
系统/库
文件夹中的源代码

业务逻辑应该在控制器中,只有与数据库的交互应该在模型中

我的问题很简单,我问自己把东西放在哪里。我看了看我模型中的“如果”。这些ifs是用来检查数据的吗?如果他们正在检查与数据库的交互是否成功,那么代码就是它所属的位置。如果它检查返回的数据值,那么它可能位于错误的位置(应该放在控制器中)

正如Zack所说,带有少量php代码的HTML应该出现在视图中

图书馆更多的是支持课程。例如,过去我为一个特殊的日历制作了一个库(类)


如果你甚至不需要一个类,把它放在一个助手里。(例如,因为您只有一个特定的字符串操作函数,但希望在不同的位置使用它)

业务逻辑应该在控制器中,只有与数据库的交互应该在模型中进行

我的问题很简单,我问自己把东西放在哪里。我看了看我模型中的“如果”。这些ifs是用来检查数据的吗?如果他们正在检查与数据库的交互是否成功,那么代码就是它所属的位置。如果它检查返回的数据值,那么它可能位于错误的位置(应该放在控制器中)

正如Zack所说,带有少量php代码的HTML应该出现在视图中

图书馆更多的是支持课程。例如,过去我为一个特殊的日历制作了一个库(类)


如果你甚至不需要一个类,把它放在一个助手里。(例如,因为您只有一个特定的字符串操作函数,但希望在不同的位置使用它)

我同意Dennis Decene的说法。但是经过一番思考,为什么auth库开发人员在auth应用程序中混合创建库和助手,而他们的库所执行的过程与php类的性质相比要“不相关”得多。

我同意Dennis Decene的说法。但是经过一番思考,为什么auth库开发人员在他们的auth应用程序中混合创建库和助手,而他们的库与php类的性质相比执行的过程要“不相关”得多。

库可以包含任何逻辑功能,不仅仅是应用程序特定的内容。库可以包含任何内容的逻辑功能,而不仅仅是应用程序特定的内容。使用应用程序/非系统/-这是一个旧响应。使用应用程序/非系统/-这是一个旧响应。