sebadorn.de

PHP und OOP: Teil 3, Statische Inhalte

PHP Egret

class Egret {

  protected $size; // cm
  protected static $counter = 0;

  public function __construct() {
    $this->size = rand(27, 230);
    self::$counter++;
  }

  public function __destruct() {
    echo 'Krawg! Kraahg!! *I am dying!*' . PHP_EOL;
    self::$counter--;
  }

  public function getSize() {
    return $this->size;
  }

  public static function getCount() {
    return self::$counter;
  }

}
Read more

PHP und OOP: Teil 2, Sichtbereiche (public, protected, private)

PHP Turtle

Read more

PHP und Objektorientierung: Teil 1, Aufbau einer Klasse

PHP Bear

Eine Einführung in Objektorientierung (OOP) in PHP. PHP 5 wohlgemerkt, was einen großen Unterschied macht, denn in PHP 4 sah der Aufbau einer Klasse noch etwas anders aus und sie taugten auch weniger. Und ja, das ist ein Bär.

Read more

Ein kleiner PHP-Cache

Für große und kleine Optimierungen werden häufig Caches eingesetzt. Im Bereich Weban­wendungen meistens ein File-Cache. Beim ersten Aufruf einer Seite rattert der PHP-Code durch und die erzeugte HTML-Ausgabe wird als Datei gespeichert und ausgegeben. Bei jeder weiteren Anfrage wird dann nur noch auf die Datei zurückgegriffen. Der Gewinn besteht in geringerer Serverbelastung und schnellerer Ausgabe.

Bei meinen Unternehmungen die Datenbank­anfragen zu reduzieren, musste ich die Ergeb­nisse kurzzeitig zwischenspeichern. Ein File-Cache wäre simpler Overkill und ein Datenbank-Cache wäre, nun, dämlich in dem Fall.

Zum Einsatz kommt jetzt eine kleine Klasse, die einfach nur Werte in Variablen speichert und in jedem Scope erreichbar ist. Aufgrund der kurzen Lebensdauer, die nur die Länge einer Seiten-Anfrage hat, heißt die Klasse „RequestCache“.

Read more

Kleine Code-Fragmente zur Performance-Analyse bei PHP

Benötigte Zeit, Arbeitsspeicher und DB-Zugriffe

Bei meinem CMS-Projekt aestas2 möchte ich – so weit mir mit meinem aktuellen Wissens­stand möglich – alles ordentlich erledigen und richtig machen. Features sind nicht alles, dazu gehört auch Optimierung. Dafür braucht man wiederum Zahlenwerte, die man für Vorher und Nachher vergleichen kann.

Zeitmessung

Am Einstiegspunkt des Skriptes merkt man sich den jetzigen Timestamp. Dann folgt der ganze eigentliche Ablauf mit Datenbankanfragen, Berrechnungen, Ausgaben oder was sonst geschieht. Danach, am Skriptende, wird die benötigte Zeit errechnet und ausgegeben.

$time_start = microtime( true );

[…]

$time_end = microtime( true );
$time = round( $time_end - $time_start, 4 );
echo 'Benötigte Zeit: ' . $time;

Die Messergebnisse schwanken dabei natürlich ein wenig und man sollte die Seite mehrmals neuladen, bevor man das Resultat bewertet. Beim lokalen Entwickeln ist auch zu bedenken, dass jedes weitere laufende Programm wie z.B. der Audioplayer Leistung nimmt und dadurch das Ergebnis verfälscht.

Read more