gpt4 book ai didi

doctrine-orm - 实体与存储库(有什么区别)

转载 作者:行者123 更新时间:2023-12-01 19:19:29 25 4
gpt4 key购买 nike

我对 Doctrine 还很陌生。使用 Symfony2 框架,我创建了具有基本 getter 和 setter 方法的各种实体。到目前为止,如果我想要一些额外的功能,我只需在实体中创建一个新方法来实现这一点。 (例如,如果我想存储用户的密码,我将创建一个方法来获取用户的密码并直接存储密码的哈希值)。

我现在听说有一些诸如“存储库”之类的东西应该保存“更复杂”的方法,而不是将它们存储在实体本身中。如果您可以简单地将所有代码保留在实际实体中的一个位置,那么这是对/错,那么拥有存储库的实际好处是什么?

最佳答案

实体是一个代表(通常)数据库中一行的对象,您应该放置仅与实体的内部状态一起操作的方法(无论它们有多复杂) - 它们要么根据其属性返回一些数据,要么修改其属性,或两者兼而有之。

存储库是一个对象,用于从存储中获取和保存实体 - 它代表数据库表。您应该放置必须与存储交互的方法,例如 save($entity)findActiveUsersOrderedByRegistrationDate() 等。

关于doctrine-orm - 实体与存储库(有什么区别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20911383/

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