РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
810 of 1361 menu

Метод get класса Cache

Метод get класса Cache возвращает значение из кэша по ключу. Первым параметром передаётся ключ элемента, вторым - callback-функция, которая вычисляет значение при промахе кэша. Метод возвращает вычисленное или закэшированное значение.

Синтаксис

public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed

Пример

Давайте получим значение из кэша по ключу 'user':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Cache\CacheInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(CacheInterface $cache): Response { $res = $cache->get('user', function () { return 'abcde'; }); return new Response($res); } } ?>

Результат выполнения кода:

abcde

Пример

Давайте закэшируем результат вычисления суммы:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Cache\CacheInterface; class ArticleController extends AbstractController { #[Route('/sum', name: 'article_sum')] public function sum(CacheInterface $cache): Response { $res = $cache->get('sum', function () { return 1 + 2 + 3 + 4 + 5; }); return new Response((string) $res); } } ?>

Результат выполнения кода:

15

Пример

Давайте получим массив данных из кэша по ключу 'items':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Cache\CacheInterface; class ArticleController extends AbstractController { #[Route('/items', name: 'article_items')] public function items(CacheInterface $cache): Response { $res = $cache->get('items', function () { return ['article 1', 'article 2', 'article 3']; }); return new Response(implode(', ', $res)); } } ?>

Результат выполнения кода:

article 1, article 2, article 3

Смотрите также

  • класс Cache,
    который предоставляет доступ к кэшу
  • метод getItem,
    который возвращает элемент кэша по ключу
  • метод save,
    который сохраняет элемент в кэш
  • метод delete,
    который удаляет значение из кэша по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить