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
+
0
-

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.

Jan Endel
Člen | 1016
+
+2
-

Protože se autowiruje ne Cache ale IStorage

mkoubik
Člen | 728
+
+2
-

Injektuj si jen storage:

function __construct(IStorage $storage)
{
	$this->cache = new Cache($storage);
}