gpt4 book ai didi

php - 直接从 MVC 中的 Controller 使用 ORM 类,不好的做法?

转载 作者:可可西里 更新时间:2023-11-01 12:50:12 25 4
gpt4 key购买 nike

我最近深入研究了在我的 CodeIgniter 应用程序中使用 ORM,我喜欢的一个是 Propel。现在这给了我基本上使用 Propels 类作为“模型”的能力,但这是不好的做法吗?

所以我的 Controller 代码如下:

<?php
class Page extends Controller {
function __construct() {
parent::__construct();
}

function index() {
$foo = FooQuery::create()->limit(10)->find();
$data['content'] = array('foo'=>$foo);
$this->load->view('home', $foo);
}
}
?>

我想在继续开发我的应用程序之前解决这个问题。如果您确实认为这是不好的做法,请举例说明我应该如何执行此操作。

提前致谢

最佳答案

是的,这是不好的做法。

模型应该包含所有数据逻辑并将其从程序的其余部分中抽象出来。对于应用程序的其余部分,模型应该看起来像从中获取数据的黑盒子。如果您使用 ORM 作为模型,那么您就是 leaking the abstraction并将您的 Controller 与数据层紧密耦合。

相反,创建您的模型,并在其中处理 ORM。这样,如果您需要调整数据模型,只需在一个地方(模型层)进行更改,并且知道抽象将保持不变。

关于php - 直接从 MVC 中的 Controller 使用 ORM 类,不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com