Linktipps #1
Da ich sehr viel im Internet lese, stoße ich häufig auch auf neue und interessante Artikel, die ich hier als Linktipps weitergeben und kommentieren möchte. Natürlich werde ich versuchen, diese Linktipps möglichst regelmäßig, am besten wöchentlich, zu verfassen. Tatsächlich habe ich bereits zwei solcher Linktipps verfasst, allerdings nur zu dem speziellem Thema Monaden. Bei den Linktipps soll es si[...]
Mehrseitige Formulare
Mehrseitige Formulare werden in vielen
komplexen Webanwendungen benötigt und werden häufig als statische
Verkettung von verschiedenen Controllern implementiert. Es gibt
allerdings eine einfache Alternative unter Nutzung von Entwurfsmustern, namentlich Zuständigkeitskette (engl. Chain of Responsibility) und Datentransferobjekt.
Mithilfe der Zuständigkeitskette komponieren wir mehrere eigenstä[...]
- Weiterlesen
- Kommentare (0)
- Tags: algorithmen, entwurfsmuster, oop, php, web
Traits und PHP
Eben bin ich auf ein Proposal für PHP gestoßen: Es handelt sich um Traits. Das Konzept war mir bis dato unbekannt, aber nach dem Lesen des RFC-Artikels des Autors wurde mir einiges klarer. Der Artikel ist recht umfangreich, aber die Idee ist schnell formuliert:
1.) Traits enthalten wiederverwendbaren Code.
2.) Man kann ihn in jegliche Klassen einbinden.
3.) Es gibt viele Möglichkeiten, Konflikt[...]
- Weiterlesen
- Kommentare (0)
- Tags: oop, php
Unit of Work Implementation
Vor einiger Zeit gab es im Zend Framework Forum eine Diskussion über die sinnvolle Implementation des Unit of Work-Patterns. Da ich diesen Pattern bereits aus dem Buch Patterns of Enterprise Application Architecture von Martin Fowler kenne, habe ich mich natürlich rege an dieser Diskussion beteiligt. Zu dem Zeitpunkt hatte ich den Pattern allerdings noch nie implementiert, was es schwierig mach[...]
- Weiterlesen
- Kommentare (0)
- Tags: entwurfsmuster, oop, php, web
Methoden statt Variablen
Ein Punkt, der mich beim Zend Framework irritiert hat, war die Klasse Zend_Db_Table_Abstract. Ich musste dort einen Tabellennamen in eine Variable schreiben. Klingt eigentlich ganz normal, aber was passiert, wenn man das vergisst? Der Fehler tritt erst auf - meist mit einer Fehlermeldung, die nur aussagt, dass das Query falsch sei -, wenn man versucht ein Query an die Datenbank zu schicken. I[...]
Kapselung durch Konvention
Als ich letztens die Bootstrap-Datei für MVCLite programmiert habe, stellte sich die Frage, wie ich gleichartige, damit meine ich die gleiche Intention, optimal kapseln kann. Die Intention ist auch sehr schnell beschrieben: Ich möchte die Applikation initialisieren. Die erste Idee war natürlich eine simple PHP-Datei, in der man alles machen kann, was man machen möchte. Vom Aufbau her wäre di[...]
Fluent Interfaces und der PHP-Weg
Bereits vor einiger Zeit bin ich auf Fluent Interfaces von Martin Fowler gestoßen. Es ist ein einfaches Prinzip mit dem man sich ein wenig Schreibarbeit ersparen kann. Nur zur Information erkläre ich das Prinzip auf die Schnelle:
class Foo
{
public function doSomething ()
{
// do something
}
public function doAnotherThing ()
{
// do another thing
}
public functio[...]
- Weiterlesen
- Kommentare (2)
- Tags: oop, php
Semantik im MVC-Pattern
Wer schon häufiger und vor allem auch umfangreicher mit dem MVC-Pattern programmiert hat - sei es mit einem Framework wie dem Zend Framework oder einer Eigenproduktion, sowie bei mir MVCLite - wird wissen, dass es gelegentlich gar nicht so einfach ist, seine Controller zu gestalten.
Was macht es schwierig? Die Interdependenzen.
Warum? Eine Komponente gehört logisch zu einer anderen Komponente.
[...]
- Weiterlesen
- Kommentare (0)
- Tags: mvclite, oop, softwaretechnik, web
Erweiterter Ansatz für den Seitenaufbau
Da ich bei meinem derzeitigen Ansatz an die Grenzen stoße - oder
zumindest deren Schwachstellen erkenne -, habe ich mir gedacht, ich
muss einen neuen Ansatz entwickeln, oder den alten zumindest erweitern.
Aber bevor ich es zum Besten gebe, werde ich nochmal den alten Ansatz
erläutern.
Allerdings werde ich zuerst noch die Problemstellung beschreiben.
Bei der Seitenstruktur geht es um das Er[...]
- Weiterlesen
- Kommentare (0)
- Tags: oop, web
Interfaces und abstrakte Klassen
Vor einigen Tagen hatte ich das Vergnügen,
einem Freund bei einem Detail zu helfen: Wann verwendet man Interfaces
und wann abstrakte Klassen? Diese Fragestellung brachte mich erstmal
ins Grübeln, aber kurz darauf sind mir einige Argumente eingefallen,
wann man welchen Typ benutzt.
Zuerst müssen wir nochmal die Unterscheidung beider Ansätze heraustellen:
- Abstrakte Klassen
- können Eigenschaf[...]