Caching Framework: automatisch Cache leeren bei Datensatzänderung

Das Caching Framework lässt sich gut verwenden, um aufwändig generierte/abgefragte Daten zur Wiederverwendung schneller parat zu haben. Die prinzipielle Funktionsweise haben wir in „Caching Framework nutzen“ erklärt und findet sich auch in der Doku sowie in zahlreichen anderen Blogs.
Was aber oftmals fehlt: wie aktualisiert man den Cache bzw. invalidert ihn bei Veränderung der Daten?

Häufig hängt der Inhalt des Caches von Datensätzen ab. D.h. der Cache-Inhalt veraltet, wenn sich ein Datensatz verändert. Und damit ist auch der Ansatzpunkt für die Invalidierung klar: der processDatamap_afterDatabaseOperations-Hook im DataHandler. Er wird immer nach Datenbankoperationen („new“ bzw. „update“) aufgerufen und bekommt auch den Taballennamen mit übergeben. Somit ist es recht einfach, die eigenen Datensätze zu erkennen und auf die Veränderung zu reagieren:

EXT:my_extension/Classes/Hooks/DataHandler.php:

<?php
namespace MyVendorName\MyExtension\Hooks;

use TYPO3\CMS\Core\Cache\CacheManager;
use TYPO3\CMS\Core\Utility\GeneralUtility;

class DataHandler
{
    public function processDatamap_afterDatabaseOperations($status, $tableName, $recordId, array $databaseData, \TYPO3\CMS\Core\DataHandling\DataHandler $dataHandler)
    {
        if ($tableName === 'tx_myextension_domain_model_example') {
            $cache = GeneralUtility::makeInstance(CacheManager::class)->getCache('myCache');
            $cache->flushByTag('tag_123');
        }
    }
}

Dann noch am Hook registrieren, und fertig:

EXT:my_extension/ext_localconf.php

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['myextension_clearcfcache'] = 'MyVendorName\\MyExtension\\Hooks\\DataHandler';

Links

URL mit Realurl und Extbase möglichst kurz machen

Kurze URLs schauen schön aus, lassen sich gut verbreiten (auch in Printprodukten) und sind wohla uch SEO-mäßig besser. Leider bringt Extbase erst einmal viele Parameter in der URL mit, und je nach Seitenbaum bringen auch die Ebenen viele URL-Anteile mit.
Mit etwas Trickserei bekommt man am Ende am doch schöne kurze URLs:

Bei einem Kunden in der Restaurantbranche ist es immens wichtig (sagt der SEO-Consultant), dass die URL möglichst kurz ausfällt. Im Prinzip wird eine URL gewünscht, die in etwa so aussieht:
example.com/objekte/objekt-in-rot.html

Dummerweise handelt es sich bei uns um eine Detailansicht innerhalb einer Extbase-Extension. Im schlimmsten Fall sieht die URL also so aus:
example.com/seite/objekte/action/show/controll/Object/object/objekt-in-rot.html

Mit ein bisschen Recherche, ein wenig Ausdauer und ein paar guten Hinweisen dank t3seo.de und verkon.de sind wir zum Ziel gekommen.

Übrigens auch eine gute Möglichkeit, Teile aus einem Realurl-Generierten-Pfad zu entfernen: t3node.com

Weiterlesen

Walnuss-Rezepte

Die California Walnut Commission bietet eine sehr umfangreiche Rezeptsammlung mit – welch ein Wunder – Walnüssen in den Essen. Die Rezepte sind alle auf deutsch und in hierzulande üblichen Maßeinheiten verfasst.

Der Sammlung fehlen nur die Kästchen zum Abhaken, um schneller zu erkennen, welches Rezept man noch nicht versucht hat ;)

California Walnut Commission – Rezepte

Danke, @robert_we für den Lesetipp!

Focaccia gefüllt mit Schinken und Parmesan

Tobias hatte im August mit seinem Tweet mein Interesse an seinem „Focaccia gefüllt mit Schinken und Parmesan“ geweckt. Leider kam ich bisher noch nicht zum Nachbacken, weshalb ich fürs Erste nur seine Abwandlung des Rezeptes festhalten möchte.

Inspiriert von einem Food Whishes-Video dient als Basis das „Focaccia mit Rosmarin“ (mit schöneren Maßangaben). Das Rezept wird ergänzt um etwas Honig, weniger Rosmarin verwendet, dafür aber das Ganze noch mit Schinken und Parmesan gefüllt.

Weiterlesen

Mega-Menü mit Cache optimieren

Ein Megamenü zeigt schnell alle Navigationspunkte – aber ist ein Schmerz beim ersten Rendern einer Seite. Dank CachingFramework lässt sich das optimieren.

Für ein solches Menü ist es nötig, dass für alle Teilseitenbäume die Äste ausgelesen werden (TypoScript: expAll) und noch unsichtbar in HTML eingebettet werden. Bei größeren Websites quält man da schnell mal den Datenbankserver, und die Performance lässt nach. Menüs werden pro Seite generiert, und erst dann mittels Seitencache zwischengespeichert. Für große Menüs heißt dies aber, dass auch die „anderen“, inaktiven Äste jedes Mal neu generiert werden :-(

Weiterlesen

Grillcamp 2017: Reis grillen

Ja, auch Reis kann man grillen. Das geht nicht nur einfach, sondern der wird sogar richtig lecker. Klingt komisch, is aber so.

Wie bereits vor dem Grillcamp in den Rezeptvorschlägen angekündigt, gabs Reis vom Grill. Das Rezept stammt von essen&trinken und ist recht simpel. In Ermangelung von Thaibasilikum kam bei uns frischer Koriander zum Einsatz:

Zutaten

300 g Klebreis
2 EL geröstete ungesalzene Erdnüsse
1 Packung Koriander, frisch (ca 15g)
16 TL Fischsauce

Zubereitung

Reis unter fließendem Wasser waschen. Über Nacht in kaltem Wasser einweichen.

Einweichwasser abgießen, Reis waschen, abtropfen lassen und in einen Dämpfeinsatz geben. Wenig Wasser in einem hohen Topf aufkochen, Dämpfeinsatz einsetzen (der Boden darf das Wasser nicht berühren). Reis zugedeckt 25-30 Minuten dämpfen, dann 1-2 Minuten ohne Deckel ziehen lassen.
Erdnüsse und Koriander hacken, mit dem Reis mischen und auf einem mit Frischhaltefolie ausgelegten Blech 1 cm dick ausstreichen. Hier hilft es, mit einem zweiten Backblech den Reis plattzudrücken (Frischhaltefolie dazwischen legen!). Abkühlen lassen.
In Quadrate/Rechtecke schneiden und 3-4 Minuten auf jeder Seite grillen.
Nach dem Wenden mit jeweils 1 TL Fischsauce beträufeln.

Fazit

Die Zubereitung geht einfach und schnell (rechtzeitig ans Einweichen denken!). Die Konsistenz der Reisstücke ist vor dem grillen bereits kompakt, d.h. es krümelt kaum, sie sind elastisch und es bleibt – bei halbwegs vorsichtigem Anpacken – auch alles in der Form stabil.
Am Ende hat man Reis, der teils etwas in Richtung der Reis-Cracker geht, also trocken-knusprig, teils noch eher die Klebreis-Konsitenz hat. Die Würzung gibt dem ganzen nochmal einen reizvolleren Geschmack. Hier sollte auf gute Verteilung der Fischsauce geachtet werden (evtl. Pinseln statt Träufeln).

Das Rezept kommt auf alle Fälle in meine Sammlung.

 

Quellen