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



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

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

实体是一个表示(通常)数据库中一行的对象,你应该在那里放置方法(无论它们有多复杂),这些方法只在实体的内部状态下运行 - 它们要么根据其属性返回一些数据,要么修改其属性,或两者兼而有之。

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

相关内容

  • 没有找到相关文章

最新更新