Rôzne namespace pri Doctrine 2 entitách, ako na to?

- iNviNho
 - Člen | 352
 
Ahojte,
Dajme tomu, že mám klasický rozdelenú admin časť aplikácie napríklad na:
- UserModule
 - MultimediaModule
 - InvoiceModule
 - FooModule…
 
Každý Module má svoj namespace, ktorý má prefix napríklad
UserModule.
Teraz ak pod konkrétny modul patria nejaké Doctrine 2 entity, tak by som ich
napísal ako UserModule\Entities\User …
A teraz konkrétne by sme mali napríklad:
- UserModule\Entities\User
 - MultimediaModule\Entities\Multimedia
 - InvoiceModule\Entities\Invoice
 - …
 
Všetko vyzeralo super až do chvíle, kým som nepoužíl:
public function __construct(EntityManager $em)
    {
	$this->em = $em;
	$this->userEntity = $em->getRepository(\UserModule\Entities\User::getClassName());
    }
a dostávam error: ** The class ‚UserModule\Entities\User‘ was not found in the chain configured namespaces App, Kdyby\Doctrine **
Kedysi som mal všetky entity v namespace App\Entities\Xyz a všetko fungovalo bez nejakých problémov, avšak troška som sa s tým hral a chcem si to takto upraviť…
Chcel by som sa teda opýtať, či už náhodou niekto neriešil podobný problém nastavenia mappingu pomocou nejakej masky v configu, alebo potom či je možné túto path k entitám pridať napríklad cez Extension ku každému modulu zvlášť :)
Ďakujem

- F.Vesely
 - Člen | 369
 
Jde to jak v configu:
doctrine:
    metadata:
        UserModule: %appDir%/UserModule
		MultimediaModule: %appDir%/MultimediaModule
nebo kdyz mas Extension:
class UserModuleExtension extends Nette\DI\CompilerExtension implements \Kdyby\Doctrine\DI\IEntityProvider
{
	function getEntityMappings()
	{
		return [
			'UserModule' => __DIR__ . '/../Entities'
		];
	}
}
				
- iNviNho
 - Člen | 352
 
Opýtam sa ešte
class User extends \DefaultModule\Entities\DefaultEntity {
    use \Kdyby\Doctrine\Entities\MagicAccessors;
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    protected $id;
    ...
    /**
     * @ORM\OneToMany(targetEntity="Log", mappedBy="user")
     * @ORM\OrderBy({"datein" = "desc"})
     */
    protected $logs;
Dostávam error: The target-entity UserModule\Entities\Log cannot be found in ‚UserModule\Entities\User#logs‘
Akonáhle prepíšem targetEntity na „LogModule\Entitites\Log“ tak to šlape, vyzerá to tak, že má problém s rôznymi namespaces, ale napadá ma potom, že to až taký problém nie je a v tej entite môžem pekne vidieť odkiaľ sa ta entita berie..