Caching prüfen

Hilfsmittel zum prüfen des Caches
Um zu sehen ob eine Seite nun gecached wird oder nicht, kann man in der Datenbank nachsehen. Das ist aber etwas umständlich. Deshalb habe ich mir ein kleines php Skript geschrieben, welches das caching für alle TYPO3 Seiten überprüft und im Browser anzeigt mit Auto-Refresh.
Hier das Skript angepasst für TYPO3 V11:
<?php
header( 'refresh: 1; url=/cachestatus/cache.php' );
$mysqlhost = 'localhost';
$mysqluser="<user>";
$mysqlpwd="<pass>";
$mysqldb="<dbname>";
$connection = mysqli_connect($mysqlhost, $mysqluser, $mysqlpwd, $mysqldb);
if (isset($_POST['clear']) && $_POST['clear']) {
echo "clear";
$sql = "DELETE FROM cache_pages";
$res = mysqli_query($connection, $sql) or die("Anfrage nicht erfolgreich");
$count=0;
} else {
$sql = "SELECT count(1) cnt, pages.* FROM cache_pages LEFT JOIN pages on pages.uid = SUBSTR(cache_pages.identifier, 1, POSITION('_' IN cache_pages.identifier) - 1) GROUP BY pages.uid ORDER BY title ";
$res = mysqli_query($connection, $sql) or die("Anfrage nicht erfolgreich");
$count=0;
while ($row = mysqli_fetch_array($res) ) {
echo " <b>" .$row['uid'];
echo " </b>| " .$row['title'];
echo " |<b> " .$row['cnt'] . "</b><br><hr>";
$count = $count + $row['cnt'];
}
}
echo "<h2>count: $count</h2>";
echo '<form method="post" action="/cachestatus/cache.php">';
echo '<input type="submit" name = "clear" value = "clear">';
echo '</form>'
In diesem Fall ist das Skript unter localhost/cachestatus/cache.php aufrufbar und zeigt im 1 Sekundentakt den aktuellen Cache Status. Dass sieht dann in etwa so aus (Seiten ID, Seiten Titel, Anzahl der gecacheden Varianten der Seite):
Alternative admPanel
Im admPanel kann man auch den Status prüfen. Hierzu muss die System Extension adminpanel aktiviert sein.
Typoscript
config.admPanel = 1
User TSconfig
admPanel.enable.all = 1
# oder nur den Cache anzeigen
admPanel.enable {
cache = 1
debug = 0
edit = 0
info = 0
preview = 0
publish = 0
tsdebug = 0
}
Caching abschalten
Eintrag in die setup.typoscript einer Extension:
config {
no_cache = 1
}