• Czas czytania ~1 min
  • 23.06.2022

Laravel Dyrektywa pamięci podręcznej serwerów kasetowych to pakiet autorstwa Ryan Chandler, który pozwala na buforowanie fragmentów plików Blade.Pakiet zawiera dyrektywę @cache, której można użyć w następujący sposób:

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

Blok pamięci podręcznej będzie buforowany przy użyciu pamięci podręcznej aplikacji Laravel, a nawet umożliwia interpolację ciągów, jeśli chcesz buforować blok w sposób na model:

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

Jeśli jesteś ciekawy, przykład bloku pamięci podręcznej {{ now() }} dałby coś takiego jak następujące dane wyjściowe:

$__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);
}

Możesz dowiedzieć się więcej ow

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297