Inject repositáře do Service
- Panthera
- Člen | 20
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
- Mysteria
- Člen | 797
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
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
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.