Php Can原则';s resolve_target_实体是否用于发现存储库?

Php Can原则';s resolve_target_实体是否用于发现存储库?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我在两个项目(ProjectA和ProjectB)上使用Symfony 2.8.3和条令2.4.8,并希望在我的捆绑包(SharedBundle)中创建共享服务 该服务需要在数据库上运行,因此我认为可以使用config.yml中的resolve_target_entities指令从SharedBundle访问我的项目存储库(在ProjectA和ProjectB中定义) 存储库如下所示: <?php namespace My\ProjectA\Repository; class FooR

我在两个项目(ProjectAProjectB)上使用Symfony 2.8.3和条令2.4.8,并希望在我的捆绑包(SharedBundle)中创建共享服务

该服务需要在数据库上运行,因此我认为可以使用config.yml中的resolve_target_entities指令从SharedBundle访问我的项目存储库(在ProjectA和ProjectB中定义)

存储库如下所示:

<?php

namespace My\ProjectA\Repository;

class FooRepository extends \Doctrine\ORM\EntityRepository
{
    // ...
}
$repository = $this->entityManager->getRepository(\My\SharedBundle\Model\FooInterface::class);
$repository = $this->entityManager->getRepository(\My\SharedBundle\Model\AbstractFoo::class);
所以我创建了一个界面:

<?php

namespace My\SharedBundle\Model;

interface FooInterface 
{
}
这引发了:

类“My\SharedBundle\Model\FooInterface”不存在

第二次尝试-抽象实体 app/config.yml

doctrine:
    orm:
        # ...
        resolve_target_entities:
            My\SharedBundle\Model\AbstractFoo: My\ProjectA\Entity\Foo
我创建了一个抽象实体

<?php

namespace My\SharedBundle\Model;

abstract class AbstractFoo
{
    // ...
}
但这会引发:

在链配置的命名空间My\ProjectA\Entity中找不到类“My\SharedBundle\Model\AbstractFoo”


这仅适用于条令关系吗?

条令绑定的
解析对象\u实体
仅适用于条令关系

实际上,您不需要使用它将不同的类(即在两个应用程序中)映射到同一个数据库表

你应该用它来代替


创建一个映射的超类
类a
(在两个应用程序中都存在),该超类由
类B
(仅在应用程序1中存在)和
类C
(仅在应用程序2中存在)扩展。

这似乎与我的第二种方法类似,但我没有在原则yml中定义任何继承。我试试看,然后尽快告诉你。
<?php

namespace My\SharedBundle\Model;

abstract class AbstractFoo
{
    // ...
}
<?php

namespace My\ProjectA\Entity;

class Foo extends AbtractFoo
{
    // ...
}
$repository = $this->entityManager->getRepository(\My\SharedBundle\Model\AbstractFoo::class);