我正在学习存储库模式,并且我看到了很多示例,其中存储库模式用于创建和更新。这是一个存储库接口的示例。
interface RepositoryInterface
{
public function all();
public function create(array $data);
public function update(array $data, $id);
public function delete($id);
public function show($id);
}
这个存储库接口负责创建/检索和更新模型。
但是,经过一些更好的搜索,我发现人们应该避免将数据持久保存在存储库中,并且存储库应该充当集合并且仅用于检索数据。这是链接。
这是他们在那里所说的话。
存储库最重要的区别可能是它们代表实体的集合。它们不代表数据库存储或缓存或任何数量的技术问题。存储库代表集合。你如何持有这些集合只是一个实现细节。
这是一个仅检索数据的存储库示例。
interface BlogRepositoryInterface
{
public function all();
public function getByUser(User $user);
}
我想知道存储库模式的最佳实践是什么?
如果我们应该只使用存储库来检索模型,那么我们如何处理创建/更新/删除模型?
万千封印
拉丁的传说