Inject repositáře do Service

Panthera
Člen | 20
+
0
-

Ahoj,

rád bych injectoval repositáře do servis ( přes anotaci ), ale nechce se mi takhle hloupě registrovat každý repo zvlášť:

services:
	categoryRepository:
		class: App\Model\Repository\CategoryRepository
		create: @Doctrine\ORM\EntityManagerInterface::getRepository('App\Model\Entity\Category')

Obzvlášť když už řádek pro EntityManager mám v annotaci pro Entitu:

/**
 * @ORM\Entity(repositoryClass="App\Repository\CategoryRepository")
 * @ORM\Table(name="category")
 */
class Category

Aktuálně mám repositáře registrované takto, ale to se mi nedaří injectnout do servis:

services:
	categoryRepository: App\Repository\CategoryRepository
Panthera
Člen | 20
+
0
-

Nejradši bych byl pro řešení, abych specifikoval namespace / cestu ke složce a automaticky si to načítalo i repositáře :)

Mysteria
Člen | 797
+
0
-

Proč je chceš vůbec mít jako služby? Nestačí ti klasické $this->em->getRepository(Article::class), což se používá prakticky ve všech projektech? Nicméně můžeš se zkusit podívat na SearchExtension, jestli by to nešlo použít.

@uzziel2: Konečně jsi dostal ban na hlavním účtu, že máš jiný? :)

Mysteria
Člen | 797
+
+1
-

To není kvůli egu, to je kvůli tomu, že ze 30 tvých příspěvků byla polovina, že Nette dělá všechno špatně a ostatní to dělají dobře a druhá polovina byla stejného typu, jako jsi předvedl tady. :)

Btw zrovna takové DI, Latte a Tracy jsou dle mého názoru na mnohem lepší úrovni než věci ze Symfony světa (DI, Twig a Profiler), protože dělat s nimi po zkušenosti s Nette je opravdu utrpení… třeba takové n:tagy v Latte, to je utrpení používat Twig bez toho.

David Grudl
Nette Core | 8239
+
+7
-

S uzzielem se prosím nebav, my hrajeme takovou hru, že on se sem registruje a já ho mažu, oba nás to docela baví, ale jde o to, ať tu pak nezůstavají příspěvky do prázdna, dík.