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 eine TYPO3 Seite überprüft und im Browser anzeigt mit Auto-Refresh.

Hier das Skript:

<?php
header( 'refresh: 1; url=/cachestatus/cache.php' );
$mysqlhost = 'localhost';
$mysqluser="<user>";
$mysqlpwd="<pass>";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
$mysqldb="<dbname>";mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");


if ($_POST['clear']) {
    echo "clear";
    $sql = "DELETE FROM cache_pages";
    $res = mysql_query($sql) or die("Anfrage nicht erfolgreich");

} else {

    $sql = "SELECT id,page_id,title, count(id) cnt  FROM cache_pages left join pages on pages.uid = cache_pages.page_id GROUP BY page_id ORDER BY title";
    $res = mysql_query($sql) or die("Anfrage nicht erfolgreich");
    $count=0;
    while ($row = mysql_fetch_array($res) ) {   
        echo " <b>" .$row['page_id'];
        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):

Erstellt: 07/2010| Geändert: 10/2015

Caching abschalten

Am einfachsten geht dies allumfassend durch Installation der Extension uncache.

Erstellt: 08/2013| Geändert: 10/2015