hi,
HTTP mit PHP ist schon ein "requestbasiertes OOP", da muss man nicht noch in jedem Fall eins draufsetzen. Jeder Request ist ein Objekt. Wenn PHP es endlich ermöglichen würde, auch Startobjekte zu deklarieren und ggf. auch zu definieren, dann hätte ich gegen OOP nichts mehr einzuwenden.
Was meinst Du mit 'Startobjekt'?
Hmm, was Du schreibst, klingt für mich interessant, weil ich z.Z. auch mal wieder am bauen bin: Jeder Request erzeugt ein Responseobjekt, genau wie bei Dir. Meine Responseobjekte bekommen jetzt per Konfiguration jeweils eine Klasse zugewiesen, jede dieser Klassen ist eine Subklasse und erbt die Methoden einer Basisklasse.
Overload gibt mir nun die Möglichkeit, bestimmte Methoden der Basisklasse zu überschreiben, das sind bei mir namentlich diese beiden hier:
browse(): Wird aufgerufen, wenn keine Parameter vorhanden sind
control(): Wird aufgerufen, wenn es POST oder GET Parameter gibt
Ohne Overload werden browse() oder control() der Basisklasse aufgerufen, sofern es die angeforderte Ressource (Responseklasse) gibt, wird die ausgeliefert, ansonsten erzeugen browse() oder control() den HTTP-Status 404.
Mit Overload (browse, control sind in der Responseklasse vorhanden) können diese Methoden alles mögliche tun, hauptsächlich werden die Platzhalter im Response-Template mit Werten bestückt, insbesondere control() ist zum Verarbeiten der Benutzereingaben zuständig und es sind auch Exceptions erlaubt.
Meine Methode response(), in der Basisklasse definiert, gibt schließlich Header und Content beliebiger Content-Types aus, in Methode response() werden auch die Berechtigungen geprüft, diese Prüfung und die Prüfung auf Exceptions in der Responseklasse ist alles ein Aufwasch ;)
Es hört sich anfangs ein bischen kompliziert an, aber was dabei herauskommt, ist an Einfachkeit nicht mehr zu übertreffen, der Code wird außerordentlich überschaubar und egal ob in Einzel- oder Teamarbeit sind komplexe Webanwendungen ratz-fatz programmiert.
Hotti