problém s IoC v Nette 2.2, kvůli existenci deprecated nette.cache (bug nette?)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Prado
- Člen | 21
Zdravím,
mám třídu, do které konstruktorem injectuji Nette\Caching\Cache
use Nette\Caching\Cache;
function __construct(Cache $cache) {
$this->cache = $cache;
}
V Nette 2.2 mi to vyhazuje Exception: „Service cache is
deprecated.“
Potud v pořádku.
Jenomže jsem si tedy dal do neonu vlastní service:
cache: \Nette\Caching\Cache
a vyhodilo to pro změnu výjimku: „Multiple services of type
Nette\Caching\Cache found: nette.cache, cache“ a to už mi v pořádku
nepřijde.
Workaround je k service explicitně zadat kterou cache použít jako
parametr
myservice: MyService(@cache)
Jenomže až se tato deprecated služba nette.cache vyhodí, začne fungovat
i to, co teď nejede. A kvůli téhle hlášce nefunguje postup, který je
podle nové filosofie v pořádku.
Podle mne by to mělo být ošetřeno jinak, nejspíš kompletním odstraněním
nette.cache.