Vlozeni factory do definice sluzby v configu

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

Ahoj,

přemýšlím, jak do definice služby v configu vložit něco, co je definované jako factory. Například chci injectovat přímo instanci cache, nez abych si předal cacheStorage a pak tu cache vytvářel v konstruktoru. Tim si totiž zanesu závislost a to se mi nechce. Jde tohle vůbec v configu udělat?

arron
Člen | 464
+
0
-

Nepochopeny dotaz: -) jde mi o to,jak takovou faktory potom přímo v configu použít v definici ‚normální‘ služby. příkladem budiž cache.

Ani
Člen | 226
+
0
-

Aha, tak to by mělo jít zapsat jako volání funkce to je snad takhle @container::createCache, ale vyzkoušené to nemám.

llook
Člen | 407
+
0
-

Na factory lze v configu odkazovat úplně stejně jako na service.

Následující kód definuje dvě služby, které v konstruktoru dostávají každá svůj vlastní objet MyCache vyrobený továrnou definovanou dál:

services:
    s1: SomeService(@cache)
    s2: SomeService(@cache)

factories:
    cache: MyCache(@cacheStorage)
arron
Člen | 464
+
0
-

A podaří se mi zavolat i factory z nějaké extension (například z Nette extension:-)). Zkoušel jsem různou syntaxi, ale dostával jsem jednu vyjímku za druhou…