如何从头开始构建 Symfony 存储库

问题描述 投票:0回答:1

我想构建一个没有数据库的 Symfony 应用程序。但我确实喜欢(通常)由学说提供的存储库/实体模式。所以我想构建自己的存储库服务和实体类。

作为背景,在此应用程序中,存储库是文件系统上的一个目录,它提供的所有实体都是该目录内的目录(由目录定义)。但为了便于讨论,存储库也可能是电子邮件收件箱和实体电子邮件,或者 xml 文件和实体 xml 片段。

我该如何构建这样的存储库?我可以简单地编写一个自定义服务和实体类,但我应该将该存储库“注册”为 Symfony 中的服务吗?如果是这样,如何以及为什么?我应该扩展或实现 Symfony 类或接口吗?

或者,身边有这样的例子吗?

symfony repository-pattern
1个回答
0
投票

存储库只是一种设计模式。它的构建是为了将数据与您的应用程序隔离。

不要将其与获取结果集列表或单个结果混淆。在文件系统中,您拥有作为附加维度的权限。在电子邮件中,您有邮件标头、协议、服务器行为等。

通常对于这些用例还有其他抽象库。例如,使用所有不同类型的文件系统(本地、ftp、nfs、aws s3、dropbox、ceph、webdav 等)上的文件。

您可以围绕这些库设计存储库模式服务。请记住,存储库模式抽象了数据查询,因此您的存储驱动程序需要一些查询机制。

© www.soinside.com 2019 - 2024. All rights reserved.