• Reading time ~ 1 min
  • 23.06.2022

Laravel Blade Cache Directive is a package by Ryan Chandler that allows you to cache chunks of Blade files. The package provides a @cache directive you can use as follows:

{{-- Provide a cache key and TTL (default is 1 hour) --}}
@cache('current_time', 30)
    {{ now() }}
@endcache

The cache block will be cached using Laravel's application cache, and even allows string interpolation if you want to cache a block in a per-model way:

@cache("user_profile_{$user->id}")
    {{ $user->name }}
@endcache

If you're curious, the {{ now() }} cache block example would result in something like the following output:

$__cache_directive_arguments = ['current_time', 300];
 
if (count($__cache_directive_arguments) === 2) {
    [$__cache_directive_key, $__cache_directive_ttl] = $__cache_directive_arguments;
} else {
    [$__cache_directive_key] = $__cache_directive_arguments;
    $__cache_directive_ttl = config('blade-cache-directive.ttl');
}
 
if (\Illuminate\Support\Facades\Cache::has($__cache_directive_key)) {
    echo \Illuminate\Support\Facades\Cache::get($__cache_directive_key);
} else {
    $__cache_directive_buffering = true;
 
    ob_start();
    ?>
    <?php echo e(now()); ?>
 
    <?php
    $__cache_directive_buffer = ob_get_clean();
 
    \Illuminate\Support\Facades\Cache::put($__cache_directive_key, $__cache_directive_buffer, $__cache_directive_ttl);
 
    echo $__cache_directive_buffer;
 
    unset($__cache_directive_key, $__cache_directive_ttl, $__cache_directive_buffer, $__cache_directive_buffering, $__cache_directive_arguments);
}

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

ABOUT

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...

About author CrazyBoy49z
WORK EXPERIENCE
Contact
Ukraine, Lutsk
+380979856297