Nastavení config pro Cache
- thm
- Člen | 147
Zdravím vás.
Začínám z Cache, ale zaskočila mě ještě jedna věc v configu.
Chtěl bych si vytvořit cache
s tagy dle dokumentace začal jsem psát – vytvořil storage, cache.
Zkusil jsem přidat TAG k položce v cache, překvapila mě výjimka
o Journalu (v dokumentaci se o Journalu nepíše), vytvořil jsem
FileJournal, vše funguje paráda, jednoduché.
Nyní jsem chtěl (a to nevím jestli je dobrý nápad, ale dle mého názoru ano) vytvořit FileJournal, FileStorage a Cache v configu.
aclJournal: Nette\Caching\Storages\FileJournal('temp/acl')
aclCacheStorage: Nette\Caching\Storages\FileStorage('temp/acl', @aclJournal)
aclCache: Nette\Caching\Cache(@aclCacheStorage, 'ACL')
Nette ale vyhodí: Service ‚cacheStorage‘: Multiple services of type Nette\Caching\Storages\IJournal found: nette.cacheJournal, aclJournal čemuž pravděpodobně rozumím (prosím opravte mě, jestli se pletu). Jedná se o to, že jsem vytvořil aclJournal = IJournal a služba cacheStorage chce jakýkoliv IJournal, ale neví který si mí vybrat.
V configu ale žádná služba cacheStorage není napsaná, resp. určitě existuje. Jak se toto řeší?
- Jan Tvrdík
- Nette guru | 2595
Buď pro aclJournal nebo nette.cacheJournal vypneš autowiring (autowire: false).
- David Matějka
- Moderator | 6445
IMHO vubec nechces a nepotrebujes vytvaret vsechny ty sluzby, proste si
injectni Nette\Caching\IStorage
a tam, kde to budes pouzivat, si
vytvori instanci Nette\Caching\Cache
- David Matějka
- Moderator | 6445
tim, ze nastavis namespace (druhy parametr v konstruktoru
Cache
), tak budou ty zaznamy oddelene.
Jen pozor, v pripade mazani dle tagu nikoliv – smazou se vsechny zaznamy s tim tagem bez ohledu na NS.