
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;
}
}
weiterlesen

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.
weiterlesen
Für große und kleine Optimierungen werden häufig Caches eingesetzt. Im Bereich Webanwendungen 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 Datenbankanfragen zu reduzieren, musste ich die Ergebnisse 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“.
weiterlesen

Bei meinem CMS-Projekt aestas2 möchte ich – so weit mir mit meinem aktuellen Wissensstand 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.
weiterlesen

Die schriftlichen Prüfungen und ein Fachgespräch sind abgehakt. Das war es mit Lernen und schlechtem Gewissen haben, wenn man gerade doch nicht gelernt hat. Eh, naja, nächstes Semester werde ich die Computergrafik-Klausur nachschreiben müssen, die nicht ganz wie geplant verlief. Mit den Inhalten werde ich mich auseinandersetzen, bis ich jede Formel und jeden Algorithmus auswendig kann und schreibe dann nur in OpenGL „Duke Nukem Forever“ fertig … oder so.
Die überaus unspektakulären Vorhaben für die nun anstehenden Ferientage: Der Desktop-Rechner wird Bekanntschaft machen mit Ubuntu als Zweitbetriebssystem, ich versuche etwas ernsthafter Japanisch zu lernen und werde mich dem Blog widmen – von Beiträgen her, wie vor allem auch dem CMS. Joggen will ich auch mal ausprobieren, aber jedesmal wenn ich daran denke, erscheint es mir unwahrscheinlicher. Ich hoffe, ich überwinde den inneren Schweinehund. Am Piano möchte ich mehr Stücke lernen – was in meinem Fall nicht Klassik bedeutet, sondern eher Anime-Liedgut – und auch mal schauen, wie ich das digitalisiert bekomme.
Eine Woche ist jetzt knapp noch Zeit für ein letztes FH-Projekt in Web-Anwendungen. Apache Tomcat, JavaEE, JSP, JSF … Der größte Mist, der je den Weg ins Internet gefunden hat. Der Einsatz ist vergleichbar mit PHP – Web-Anwendungen eben. Klar, Java bietet mehr Möglichkeiten und einmal übersetzt ist es wohl auch schneller als PHP. Aber der Einstieg ist ein Grauen, in jedem Winkel muss erst dies und das konfiguriert werden und von echten Erfolgserlebnissen kann man nicht sprechen. Läuft es nämlich endlich, ist man nur müde und genervt und froh, dass mal etwas läuft. Dreck. Ja, dieser Absatz mit Genörgel fällt vor allem so lang aus, weil ich gestern mehrer Stunden damit zugebracht habe, nur um eine kleine Text-Ausgabe zu erhalten. PHP <3.