public function show($slug, MarkdownInterface $markdown, AdapterInterface $cache)
{
$comments = [
];
$articleContent = <<<EOF
TRESŚĆ, KTORA BEDZIE WYSWEITLANA
EOF;
$item = $cache->getItem('markdown_'.md5($articleContent)); // tworzy obiekt o nazwie w pamieci
if (!$item->isHit()) { // sprawdza czy obiekt istnieje juz w cache
// jeżeli nie
$item->set($markdown->transform($articleContent)); // ustawia zawartosć obiektu
$cache->save($item); // zapisuje obiekt do cache
}
// jeżeli tak
$articleContent = $item->get(); // ustawia treść zmiennej na podstawie danych z cache
return $this->render('article/show.html.twig', [
'title' => ucwords(str_replace('-', ' ', $slug)),
'articleContent' => $articleContent,
'slug' => $slug,
'comments' => $comments,
]);
}
Moje pytanie na podstawie powyższego kodu brzmi.
Jaki sens ma odpytywanie się cahce o istnieje obiektu z tą treścią skoro i tak najpierw muszą ją pobrać, żeby na jej podstawie stworzyć sobie hashowaną nazwę obiekty, który przechowuje treść?
Jedyna różnica jest taka, że za drugim razem już nie zapisuje obiektu do cache ale mimo wszystko muszę pobrać treść wpisu aby w ogóle sprawdzić czy istnieje on w cache.
Gdyby było tam połączenie do bazy i wyciąganie treści wpisu z bazy to mimo wszystko z każdym razem gdy odwiedzałbym wpis miałbym połączenie do bazy czyli taki cache nie ma sensu za bardzo.
Czy ten kod jest po prostu niekompletny czy mozę coś pominąłem lub źle zrozumialem, proszę o wskazówki. :)