Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在DAO中创建对象可以吗_Php_Design Patterns_Factory_Dao - Fatal编程技术网

Php 在DAO中创建对象可以吗

Php 在DAO中创建对象可以吗,php,design-patterns,factory,dao,Php,Design Patterns,Factory,Dao,例如,我有一个DAO,用于访问令牌数据库。 是否可以使用它创建并立即保存新实体,如下面的示例所示?(PHP中的示例) 它稍微结合了一个对象工厂和DAO。我认为将对象工厂和dao分开(可能包装到facade中)是不必要的开销,但如果这不是一个坏做法,我希望听取其他人的意见 我还没有在关于DAO模式的文章中发现任何积极或消极的线索 感谢您的意见/回答。在我看来,DAO应该只用于封装数据库,而不是执行一些逻辑或创建 在您的示例中,另一个问题是,如果您更改令牌构造函数,那么您也必须更改令牌DAO 我认为

例如,我有一个DAO,用于访问令牌数据库。 是否可以使用它创建并立即保存新实体,如下面的示例所示?(PHP中的示例)

它稍微结合了一个对象工厂和DAO。我认为将对象工厂和dao分开(可能包装到facade中)是不必要的开销,但如果这不是一个坏做法,我希望听取其他人的意见

我还没有在关于DAO模式的文章中发现任何积极或消极的线索


感谢您的意见/回答。

在我看来,DAO应该只用于封装数据库,而不是执行一些逻辑或创建

在您的示例中,另一个问题是,如果您更改令牌构造函数,那么您也必须更改令牌DAO


我认为,在DAO的一个单独的层中创建令牌。

我认为DAO应该只用于封装数据库,而不是执行一些逻辑或创建

在您的示例中,另一个问题是,如果您更改令牌构造函数,那么您也必须更改令牌DAO

我的意见是,在与DAO不同的层中创建令牌

class TokenDao {
    ...
    public function createToken($code) {
        $token = new Token($code);
        $this->entityManager->persist($token);
        $this->entityManager->flush();
        return $token;
    }
}