php - 我应该如何在 Codeigniter 中布置我的代码?

标签 php codeigniter

目前我正在做这样的事情:

Controller :立即调用模型然后查看。除了决定调用哪个模型和 View 之外没有真正的其他逻辑

模型:包含我数据库中每个表的所有函数。我的数据库中每个表都有一个模型类及其方法。

View :只包含布局,几乎为零逻辑。

:所有不特定于数据库表的类

第三方:下载的插件

我的问题是,这是正确的吗?例如,我是否应该始终将非特定于表的类放在库中?如果我的类或函数是“产品”和“客户”表的组合,那会怎样呢?

提前致谢

最佳答案

您的应用程序不应与您的框架混在一起。这意味着它应该在自己的文件夹中(您可以根据您的应用程序命名)。在那里,我建议您保留所有纯 PHP,如果您想要库,则使用 composer 来安装它们。

这允许您在不加载框架的情况下测试您的应用程序,这是一个很大的好处。此外,如果您想要切换框架,或移动到一个完全不同的平台(例如独立平台),那么它会变得容易得多。

在应用程序文件夹中,每个用户故事/用例都有一个类(通常是动词,想想 processOrder)。您可以将它们放在名为 interactors 的文件夹中。

这些类对您放入实体文件夹(也在应用程序文件夹中)的实体进行操作。

要与应用程序交互,您需要定义明确的边界(接口(interface))。您从 Controller 调用您的用例并显示结果。您的 Controller 负责将数据从应用程序移动到用户,反之亦然(当然使用 View )。

您的数据库内容(包括 API 和其他数据源)也应该是独立的。我们再次需要明确的界限。在其他情况下,您需要用数据填充您的实体或直接向您的交互者提供数据。我建议您为此使用存储库。

这还允许您将应用与数据库部分分离,这对测试非常有用,您可以只创建一个 stub 存储库,然后运行测试而无需使用数据库。

Bob 叔叔对此有一段精彩的讨论:http://www.youtube.com/watch?v=WpkDN78P884

关于php - 我应该如何在 Codeigniter 中布置我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210934/

相关文章:

php - 无法在 MySql 表中插入数据,但我可以很好地检索数据

php/mysql - 计数和分组

php - 在 Codeigniter 中手动调用/调用 Hook

php - 严重性 : Notice Message: Trying to get property of non-object codeigniter

php - nusoap如何返回数组?

php - 路由前缀如下 Virtual Host

mysql - 4 列的 DISTINCT 值

mysql - CodeIgniter UPDATE 查询不适用于列值添加

php - 在带有 OR 的 PHP 中的 IF 语句中,如何跟踪哪个条件评估为假?

php - 这个 jQuery/Javascript 功能可以用 PHP 复制吗