Upgrade
Upgrade na verzi 4.0
Minimální požadovaná verze PHP je 8.4. Značka {cache} vyžaduje Latte 3.1.
Část práce za vás udělá DressCode s balíčkem
dresscode/upgrade-nette: přepíše přejmenované třídy a konstanty a ohlásí, co přepsat nedokáže. Viz Upgrade Nette.
Rozhraní Nette\Caching\IStorage, Nette\Caching\IBulkReader a
Nette\Caching\Storages\IJournal byla odstraněna; použijte Nette\Caching\Storage,
Nette\Caching\BulkReader a Nette\Caching\Storages\Journal. Odstraněny byly i aliasy služeb
cacheStorage a nette.cacheJournal; použijte služby cache.storage a
cache.journal, případně autowiring.
Konstanty psané velkými písmeny, třeba Cache::EXPIRE nebo Cache::TAGS, a metoda
Cache::start() nyní vyvolávají E_USER_DEPRECATED. Použijte Cache::Expire,
Cache::Tags a capture(). Předávat closure jako data do Cache::save() je zastaralé,
předejte ji jako generátor do load().
Závislosti lze zapsat novým objektem Nette\Caching\Dependencies, viz Expirace a invalidace. Pole s klíči Cache::* dál funguje,
ale neznámý klíč nebo hodnota špatného typu nyní vyhodí výjimku. Typicky jde o prioritu zapsanou jako řetězec, třeba
'50', která musí být celé číslo.
Metoda Cache::clean() přijímá podmínky jako pojmenované argumenty, třeba
$cache->clean(tags: ['article/10']); pole se kontroluje stejně jako závislosti. Několik věcí se
chová jinak:
clean()bez jakékoliv podmínky vyhodí výjimku. Vyexpirované položky smažete volánímclean([])na úložišti.allu cache s jmenným prostorem smaže jen tento prostor a prostory z něj odvozené; dříve smazal celé úložiště. Pokud chcete smazat vše, zavolejte ho na cache bez jmenného prostoru, nebo zavolejte$storage->clean([Cache::All => true]).- Mazání podle
Cache::Namespacessmaže i prostory odvozené od uvedených pomocíderive().
Úložiště vyhodí Nette\NotSupportedException pro závislost nebo podmínku, kterou neumí, místo aby ji
potichu ignorovalo. SQLiteStorage nepodporuje priority ani závislosti na souborech, konstantách, callbackech a
jiných položkách; MemcachedStorage nepodporuje mazání podle jmenných prostorů. Viz přehled úložišť.
PsrCacheAdapter nyní kontroluje klíče tak, jak vyžaduje PSR-16, takže odmítne klíče obsahující některý
ze znaků {}()/\@:, třeba user:1.
Pokud jste napsali vlastní úložiště, odstraňte metodu lock(), která už neexistuje, a deklarujte
návratový typ mixed metody read(). Úložiště, které má chybějící položku nechat vygenerovat
jen jednomu procesu, implementuje rozhraní Nette\Caching\LockingReader. Potomek Cache, který
přepisuje clean(), musí deklarovat její nové parametry.
Upgrade na verzi 3.1
- metoda
Nette\Caching\Cache::start()byla přejmenována nacapture()
Upgrade na verzi 2.4
- třída
Nette\Caching\Storages\FileJournaljiž není k dispozici
Upgrade na verzi 2.3
- prastará a zastaralá ArrayAccess syntaxe
$val = $cache[$key]nebo$cache[$key] = $valvyvoláE_USER_DEPRECATED; použijte místo ní$cache->load($key)a$cache->save($key, $val)