【发布时间】:2013-03-21 09:48:39
【问题描述】:
我想使用 PDO 创建对象的实例。我知道已经有很多questions,但我只发现可以将一组参数发送给构造函数。对我来说,构造函数似乎只能接受一个数组作为参数。然而,这会使构造函数变得不那么有意义。
我想用我自己的 getter 和 setter 创建一个类,如下所示:
class MyClass {
private propertyA
private propertyB
public __constructor($argA, $argB) {
$this->setPropertyA($argA);
$this->setPropertyB($argB);
}
public setPropertyA($arg) {
$this->proprtyA = $arg;
}
}
有没有一种优雅的方法可以使用数据库中的数据创建此类的实例,最好是使用 PDO。
【问题讨论】:
-
直接从 SQL 查询中实例化类的想法是违背任何优雅的。
-
我还考虑创建存储库类并将数据从 FETCH_ASSOC 传递到我的模型类的构造函数。也许这样更好?
-
为什么要使用数据库中的数据来创建对象?为什么???
-
为什么不呢?假设我想编辑代表类实例的行。我将创建该类的一个实例,并将从数据库返回的数据传递到其类构造函数中。这样,我可以使用类的 getter 和 setter 编辑该类的属性,然后将其保存回数据库。我们在课堂上做了类似的事情,但使用 .NET 和 EF,他们称之为“存储库/服务模式”。我认为我可以跳过 PHP 中的整个 ORM 并使用 SQL 而不是 LINQ,因为它在语法上没有那么不同。
-
这些cmets很奇怪,那你是只操作哑图(数组或stdClass对象)还是结果集?