I want to decouple my application so I can use my entities anywhere whatever their datasource might be.
So I've put my entities in
DataAccessLayerBundle\Entity
and mappings in
DataProvider\DataBaseBundle\Resources\config\doctrine
Issue:
When I try the following command:
php app\console doctrine:schema:create
to build my database, I get the following error:
Warning: class_parents(): Class (..)\DataProvider\DatabaseBundle\Entity\BaseEntity does not exist and could not be loaded in (...)\vendor\doctrine\lib\D octrine\ORM\Mapping\ClassMetadataFactory.php line 223
The question is: why the hell is it trying to look for classes in the DataProvider\DatabaseBundle\Entity namespace, when I explicitly defined it otherwise in the mapping files? Example fragment of mapping file:
<mapped-superclass name="(...)\DataAccessLayerBundle\Entity\Base\BaseEntity">
I've noticed symfony/doctrine is just looking up those classes based off xml filenames (e.g. BaseEntity.orm.xml) and current bundle namespace.
Is there any way I can decouple things like I wanted, or am I stuck with defining entities and their mapping in the same bundle?