我想做存储库接口。目前,我有两个实体:User
和Payment
。因此,我想为以下实体创建存储库:UsersRepository
和PaymentsRepository
。
项目中的每个存储库都具有共同的功能,例如:findOne
,find
,save
,delete
。因此,我认为我应该创建一个公共存储库,其他存储库将通过该存储库进行扩展RepositoryInterface
。
<?php
interface UsersRepository extends RepositoryInterface {}
我的服务将取决于这些接口。那么如何键入提示,UsersRepository::findOne
将返回User
实体?
答案 0 :(得分:1)
您可以这样指定函数的返回类型:
<?php
interface UsersRepository extends RepositoryInterface {
function findOne() : User;
}
由于在PHP中不提供了泛型,因此您将无法做到:
<?php
interface RepositoryInterface<T> {
function findOne() : T;
function save(T record);
}
interface UsersRepository extends RepositoryInterface<User> {
function findOne() : User;
}
因此,您只需要为每个存储库中的每个方法指定返回类型