Kdyby\Doctrine – lze změnit EntityManager?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jiří Nápravník
Člen | 710
+
0
-

Jde nějakým snadným způsobem změnit defaultní EntityManager v Kdyby\Doctrine? Ať se snažím všemi možnými způsoby, nedaří se mi to…

enumag
Člen | 2118
+
0
-

Teoreticky ano když v config.neon nebo extension změníš classu té service. Ale nutno podotknout že to není doporučované. Už to že Kdyby má vlastní EntityManager jde trochu proti Doctrine (https://github.com/…yManager.php#L62).

Co chceš do EntityManageru přidávat?

Editoval enumag (4. 1. 2016 19:58)

Jiří Nápravník
Člen | 710
+
0
-

Myslíš takhle nějak?

doctrine.default.entityManager:
	class: JiriNapravnik\Doctrine\EntityManager

To mi háže „used in service ‚doctrine.default.entityManager‘ not found or is not instantiable.“ – přitom je normálně dohladetalná. I pokud dám Kdyby\Doctrine\EntityManager, tak mi to hodí ten error. Bude tam nejspíše nějaký problém s tím instancováním

Přidat nic. ubrat ten onDaoCreate event (stejne je uz deprecated). Stve me v eventPanelu, ze tam mam asi 15 zbytecnych eventu. Mozna to i trochu pomuze ve vykonosti.

enumag
Člen | 2118
+
0
-

Myslím že to bude nějaký problém s autoloadingem. Překlep v názvu souboru nebo tak něco.

Takovéhle úpravy EM podporuju! :-)

Jiří Nápravník
Člen | 710
+
0
-

To jsem samozřejmě kontroloval xkrát. A i když jsem to přehodil v tom configu přímo na Kdyby\Doctrine\EntityManager (což by mělo fungovat, logicky, když je jako default) tak mi to vyhodí to samé…

enumag
Člen | 2118
+
0
-

Smazat nette cache, opcode cache apod. jsi předpokládám zkoušel že? Bohužel mne nenapadá čím jiným by to mohlo být. Je to dost zvláštní problém.

Jiří Nápravník
Člen | 710
+
+2
-

Nakonec jsem to musel udělat nějak takhle a tu create překopírovat z Kdyby, aby vracela instanci moji tridy:

doctrine.default.entityManager:
			class: JiriNapravnik\Doctrine\EntityManager
			create: JiriNapravnik\Doctrine\EntityManager::create(@doctrine.default.connection, @doctrine.default.ormConfiguration, @doctrine.default.evm)