• Время чтения ~1 мин
  • 02.07.2022

LaraCache — это пакет на основе ORM для Laravel, позволяющий создавать, обновлять и управлять элементами кэша на основе запросов модели. С помощью этого пакета вы можете кэшировать запросы, которые активно используются в вашем приложении.

use Mostafaznv\LaraCache\Traits\LaraCache;
 
class Article extends Model
{
    use LaraCache;
 
    public static function cacheEntities(): array
    {
        return [
            CacheEntity::make('list.forever')
                ->cache(function() {
                    return Article::query()->latest()->get();
                }),
 
            CacheEntity::make('latest')
                ->validForRestOfDay()
                ->cache(function() {
                    return Article::query()->latest()->first();
                })
        ];
    }
}

Используя метод cacheEntities для определения кэшированных запросов, Laracache позаботится обо всем остальном.Чтобы использовать кешированные запросы, вызовите модель, как показано в следующем примере:

use Mostafaznv\LaraCache\Facades\LaraCache;
 
 
$cache = Article::cache()->get('latest');
// or
$cache = LaraCache::retrieve(Article::class, 'latest');

С помощью этого пакета вы можете управлять кешем с помощью следующих функций:

  • Enable/disable cache
  • Update cache manually
  • Update all cache entities manually
  • delete cache
  • Control CacheEntity duration using fluent methods or a ttl() method

Я думаю, что следующий метод ручного обновления кеша был удобен, обновляя ваш кеш на лету:

Article::cache()->update('latest');
// or
LaraCache::update(Article::class, 'latest');

Вы можете узнать об этом пакете, получить полные инструкции по установке и просмотреть файл исходный код на GitHub.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297