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

Метод getKey класса CacheItem

Метод getKey класса CacheItem возвращает ключ, под которым данный элемент хранится в кэше. Ключ - это строка, которая однозначно идентифицирует запись в хранилище. Метод не принимает параметров и всегда возвращает строку. Его удобно использовать, когда нужно узнать, под каким именем элемент был получен из кэша, например, для логирования или передачи в другие методы.

Синтаксис

public function getKey(): string

Пример

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

<?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 CacheController extends AbstractController { #[Route('/cache/key', name: 'cache_key')] public function key(CacheInterface $cache): Response { $item = $cache->getItem('user_abcde'); $item->set('hello'); $cache->save($item); return new Response($item->getKey()); } } ?>

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

"user_abcde"

Пример

Давайте используем getKey вместе с isHit, чтобы понять, был ли элемент найден в кэше:

<?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 CacheController extends AbstractController { #[Route('/cache/hit', name: 'cache_hit')] public function hit(CacheInterface $cache): Response { $item = $cache->getItem('article_1'); if ($item->isHit()) { return new Response('Hit: ' . $item->getKey()); } return new Response('Miss: ' . $item->getKey()); } } ?>

Результат выполнения кода при отсутствии элемента в кэше:

"Miss: article_1"

Пример

Давайте переберём несколько элементов и соберём их ключи в массив:

<?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 CacheController extends AbstractController { #[Route('/cache/keys', name: 'cache_keys')] public function keys(CacheInterface $cache): Response { $keys = ['user_1', 'user_2', 'user_3']; $res = []; foreach ($keys as $key) { $item = $cache->getItem($key); $item->set('hello'); $cache->save($item); $res[] = $item->getKey(); } return new Response(implode(', ', $res)); } } ?>

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

"user_1, user_2, user_3"

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

  • класс CacheItem,
    который представляет один элемент кэша
  • метод get,
    который возвращает значение элемента
  • метод set,
    который задаёт значение элемента
  • метод isHit,
    который проверяет наличие элемента в кэше
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить