PHP

Vor über einem Jahr war ich auf der Suche nach einem netten Content Management System zur Realisierung einer Homepage. Dabei stieß ich auf Drupal, dessen Konzept mir auf Anhieb recht gut zusagte. Als ich mich damit beschäftigte merkte ich allerdings schnell, dass Drupal zwar toll ist, aber einen in meinen Augen immens hohen Einarbeitungsaufwand erfordert. Ich beschäftigte mich dann eine Weile damit, aber irgendwie blieb es mit der Zeit liegen, bis ich vor circa zwei Monaten anfing eine Bandhomepage für einen Kumpel mit Drupal zu entwickeln. Ich konnte auf ein paar Vorarbeiten von vor einem Jahr zurückgreifen, musste aber noch etliches selbst machen. Seit Weihnachten ist die Homepage nun online und ich bin recht zufrieden. Natürlich ist sie nicht perfekt und es fehlen auch noch ein paar Sachen, aber ich finde sie ist recht gut geworden.
Zu Drupal kann ich noch sagen, dass ich es toll fände Konzepte wie CCK und Views noch tiefer im Kern verankert zu sehen. Denn das sind echt coole Techniken.
Mal schauen, vielleicht werde ich in Zukunft auch noch die ein oder andere Seite mit Drupal realisieren, denn das ist eine echt gute Grundlage.

Natürlich will ich euch auch nicht den Link oben erwähnter Seite vorenthalten. Er lautet: http://www.beats-of-loner.de/.

Seitdem ich versuche mit PHP strikt objektorientiert zu programmieren fallen mir immer wieder Sachen auf die äußerst unschön sind.
Heute: Die magische Methode __toString() wird anscheinend nicht mit vererbt, sodass man sie in jeder Kindklasse neu definieren muss. Ob das bei allen magischen Methoden so ist weiß ich nicht, um das auszuprobieren fehlte mir der Nerv.
Muss das so sein und wenn ja warum? Mir erschließt sich jedenfalls der Sinn nicht so recht.

Ich war vorhin mal wieder dabei ein bisschen was in PHP zu programmieren. Unter anderem eine Klasse zum Handling von Listen. Eine ähnliche Klasse hatte ich neulich im Rahmen eines Tutorenjobs schon mal in Java implementiert, insofern war es also eigentlich nur ein bisschen Schreibarbeit. Allerdings fielen mir zwei Sachen sehr unangenehm auf. Dadurch das die Funktionen von PHP nicht in irgendwelche Klassen oder Namespaces unterteilt sind war es mir weder möglich meine Klasse “List” zu nennen, noch ihr die Methode “empty” zu geben. Denn list() und empty() haben unter PHP schon eine andere Bedeutung. Das sind dann so die kleinen aber feinen Unterschiede an denen man merkt das Java mehr durchdacht und strikter umgesetzt ist.

Edit: Wobei der PHP-Interpreter ja auch einfach so schlau sein könnte zu erkennen in welchem Zusammenhang solche Begriffe gebraucht werden. Denn ein “class List { […] }” macht mit PHPs list()-Funktion irgendwie nicht allzuviel Sinn.

Ganz toll. Ich hab grade festgestellt, dass es in PHP5 nicht ohne weiteres möglich ist Extendable-Singleton-Klassen zu erstellen. Problem ist, dass die abstrakte Klasse bereits den Namen der abgeleiteten Klasse kennen müsste, was natürlich nicht geht.
Es gibt zwar Workarounds (siehe hier) aber so wirklich zufriedenstellend sind die auch nicht.