Kuratierte Linksammlung für Webdesigner und -entwickler.
Optimierung der Ladezeiten von PHP-basierten Websites

So erstellst Du einen einfachen und effizienten PHP-Cache

Beim Arbeiten an PHP-basierten Websites ist die Ladegeschwindigkeit von Webseiten eines der wohl häufigsten Optimierungsmaßnahmen. Und auch wenn Google die Ladezeiten von Webseiten als nur eines der über 200 weiteren Kriterien für das Ranking von Webseiten berücksichtigt, bedeutet dies natürlich keinesfalls, dass die Ladezeit als Rankingfaktor nicht wichtig ist.

Gerade für Deine Besucher sind schnell ladende Webseiten das Beste, was Du ihnen geben kannst, abgesehen vom Inhalt. In diesem Artikel zeige ich Dir einen sehr einfachen und effizienten Weg, den Du in nur drei einfachen Schritten beschreiten kannst, um einen dynamischen Cache Deiner PHP-Seiten zu erstellen.

Anzeige

1. Erstelle die Datei top-cache.php

Wir benötigen zwei Dateien. Hier ist die Erste: Erstelle eine neue Datei namens top-cache.php. Füge folgenden Code in diese Datei:

<?php
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
$cachetime = 18000;

// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n";
    include($cachefile);
    exit;
}
ob_start(); // Start the output buffer
?>

Was macht nun dieser Code?

  • Die ersten fünf Zeilen erstellen den Cache-Dateinamen nach der aktuellen PHP-Datei. Wenn Du also eine Datei namens liste.php verwenden würdest, würde die Cache-Datei cached-liste.html benannt werden.
  • Zeile 6 erstellt eine $cachetime-Variable, welche die Lebensdauer des Caches bestimmt.
  • Zeile 9 bis 13 definiert eine bedingte Anweisung, die nach der $cachefile-Datei sucht. Wenn diese Datei nicht gefunden wird, wird ein Kommentar eingefügt (Zeile 10) und der Inhalt der $cachefile-Datei wird ausgegeben. Dann stoppt die exit-Anweisung des Scripts und die Datei wird an den Client-Browser geschickt. Was bedeutet, dass, wenn eine statische Datei gefunden wird, kein PHP-Code vom Server interpretiert wird.
  • Zeile 14 erzeugt einen Puffer, wenn die $cachefile-Datei nicht gefunden wird.

Das ist soweit alles für die top-cache.php-Datei.

2. Erstelle die Datei bottom-cache.php

Erstelle nun eine zweite PHP-Datei namens bottom-cache.php und füge folgenden Code darin ein:

<?php
// Cache the contents to a file
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Send the output to the browser
?>

Wenn die $cachefile-Datei nicht auf Deinem Server gefunden wird, wird dieser Code ausgeführt und erstellt eine Datei, sodass beim nächsten Seitenaufruf die statische $cachefile-Datei auf dem Client-Browser ausgegeben wird, anstelle der der gesamten PHP-Datei.

3. Binde die Cache-Dateien in Deine Seiten ein

Nun hast Du die beiden notwendigen Cache-Dateien erstellt. Als Letztes brauchst Du diese nur noch in die PHP-Dateien einbinden, die Du cachen möchtest.

Wie Du sicherlich vermuten kannst, muss die top-cache.php-Datei an den Anfang der PHP-Seite eingegliedert werden und die bottom-cache.php-Datei an das Ende der gewünschten PHP-Seite. Wie folgt:

<?php

include('top-cache.php'); 

// Your regular PHP code goes here

include('bottom-cache.php');
?>

Wenn Du nun diese Caching-Methode auf einer langsam ladenden Seite testet, wirst Du erstaunt sein, wie viel schneller die Seite nun lädt. Diese einfache Caching-Methode ist eine favorisierte Lösung bei der Arbeit an, von Grund auf neuen, PHP-Websites.

(Quelle: www.catswhocode.com)

Frischer Input für Designer. Jeder Abonnent erhält das kostenlose Bundle aus 50 Photoshop Device-Mockups und 40 Responsive WordPress-Themes.

1x pro Woche. Kein Spam. Jederzeit kündbar.
Jonathan Torke
Jonathan Torke

Auf pixeltuner.de teile ich aktuelle Ressourcen für Webdesigner und -entwickler. Du findest mich auch auf deviantART und Instagram.
PayPal-Kaffeespende.

3 Antworten auf "So erstellst Du einen einfachen und effizienten PHP-Cache"
  • Avatar
    SF:

    Hallo Jonathan!
    Sehr interessanter Artikel. Dieses Problem mit der Geschwindigkeit habe ich auf meiner Webseite und habe bis jetzt keine zufriedenstellende Lösung gefunden. Deswegen eine Frage dazu: Funktioniert das auch mit WordPress? Wenn ja, wo müssen dann die Verweise auf diese zwei Scripte stehen (z.B. in header.php etc.)?
    MfG
    SF

    • Jonathan

      Da WordPress ebenfalls auf PHP basiert, funktioniert es auch wunderbar mit WordPress. Wo Du die Cache-Dateien eingliederst, hängt ein bisschen davon ab, welcher Struktur der Code in Deinem Theme-Dateien unterworfen ist.

      Versuchs doch einmal mit der single.php– und der page.php-Datei. Diese Dateien liegen in der Regel im Hauptverzeichnis Deines Themes.

      Lieben Gruß

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verpasse keine News!

Du erhältst ein kostenloses Bundle aus 50+ WordPress-Themes und PSD Device-Mockups.

1x pro Woche. Jederzeit kündbar.
Anzeige