Doctrine 有没有办法创建与Symfony 4中特定类无关的通用存储库?

Doctrine 有没有办法创建与Symfony 4中特定类无关的通用存储库?,doctrine,symfony4,Doctrine,Symfony4,我正在将旧的Symfony 2.7代码库升级到Symfony 4,我有一些Dao类不适合特定的类存储库 例如:我有一个Dao,它为我提供了通用的数据库信息,比如计算每个表中的记录总数,以及其他主要访问执行多个操作的数据库函数的信息 有没有办法创建与特定类无关的存储库?如果不是,最“Symfony 4”的创建方式是什么 我想,在创建一个独立的Dao类(不是存储库)时,可以在其中插入EntityManager并将所有查询放在那里。有更好的方法吗 编辑:有人能评论一下为什么这个问题没有得到回答吗?我是

我正在将旧的Symfony 2.7代码库升级到Symfony 4,我有一些Dao类不适合特定的类存储库

例如:我有一个Dao,它为我提供了通用的数据库信息,比如计算每个表中的记录总数,以及其他主要访问执行多个操作的数据库函数的信息

有没有办法创建与特定类无关的存储库?如果不是,最“Symfony 4”的创建方式是什么

我想,在创建一个独立的Dao类(不是存储库)时,可以在其中插入EntityManager并将所有查询放在那里。有更好的方法吗


编辑:有人能评论一下为什么这个问题没有得到回答吗?我是不是遗漏了什么?我正在考虑在本次悬赏到期后提高悬赏,但我不确定是否要这样做,只是在没有任何回答的情况下放松了rep。

如果我的理解是正确的,您要检索的数据与任何特定实体都不相关,因此您永远不需要像findBy这样的存储库功能,也不需要任何实体,您可能也不需要使用任何DQL

所以,您的建议对我来说似乎是正确的:在类中插入实体管理器,您可以调用DatabaseMetadataRepository作为示例,即使它不扩展ServiceEntityRepository。然后,只需将您的请求放入本地查询(如果需要):

类数据库MetadataRepository
{
私人$entityManager;
公共函数构造(entityManager接口$entityManager)
{
$this->entityManager=$entityManager;
}
公共函数loadMetadata($someParameter){
$conn=$this->getEntityManager()->getConnection();
$sql=”
随便选
从任何表格t
其中my_列=:someParameter
";
$stmt=$conn->prepare($sql);
$stmt->execute(数组('someParameter'=>$someParameter));
返回$stmt->fetchAll(\doctor\DBAL\FetchMode::COLUMN);
}
}
对我来说似乎是合法的方法