Laravel 12.9 zavádí ovladač Memoized Cache Driver

Laravel přidal nový memoizovaný ovladač mezipaměti, na kterém se podílela společnost @timacdonald který zdobí stávající ovladače mezipaměti ukládáním načtených hodnot do paměti bě...

Poptat web

17. 04. 2025

Laravel 12.9 zavádí ovladač Memoized Cache Driver

Laravel přidal nový memoizovaný ovladač mezipaměti, na kterém se podílela společnost @timacdonald který zdobí stávající ovladače mezipaměti ukládáním načtených hodnot do paměti během životního cyklu požadavku. To umožňuje, aby opakovaná volání stejného klíče mezipaměti byla vyřešena z paměti, čímž se sníží počet opakovaných volání základní mezipaměti.

Základní použití

Cache::get('foo'); // hits the cache
Cache::get('foo'); // hits the cache
 
Cache::memo()->get('foo'); // hits the cache
Cache::memo()->get('foo'); // does NOT hit the cache

Příklad hodnoty

Cache::put('name', 'Taylor');
Cache::get('name'); // "Taylor"
 
Cache::put('name', 'Tim');
Cache::get('name'); // "Tim"
 
Cache::put('name', 'Taylor');
Cache::memo()->get('name'); // "Taylor"
 
Cache::put('name', 'Tim');
Cache::memo()->get('name'); // "Taylor"

Zadání ovladače

Cache::memo()->get('name'); // default driver
Cache::memo('redis')->get('name'); // Redis driver
Cache::memo('database')->get('name'); // Database driver

Každé memoizované úložiště je izolováno pro každý ovladač:

Cache::driver('redis')->put('name', 'Taylor in Redis');
Cache::driver('database')->put('name', 'Taylor in the database');
 
Cache::memo('redis')->get('name'); // "Taylor in Redis"
Cache::memo('database')->get('name'); // "Taylor in the database"

Chování při mutaci

Memoizované ovladače při použití metod mutace zapomenou na hodnoty uložené v mezipaměti:

Cache::memo()->put('name', 'Taylor'); // writes and clears memoized 'name'
Cache::memo()->get('name'); // hits cache
Cache::memo()->get('name'); // memory

Kompletní informace naleznete v původním požadavku na stažení:
🔗 laravel/framework#55304

Původní článek publikoval Nabil Hassen.