Unterschiede in PHP Varianten

[x] Du leitest ein Pattern vom Klassennamen ab :D

Wie kommst du darauf? Ich schau mir eine Klasse an und sehe dann, nach welchem Entwurfsmuster sie gestrickt ist.

Ist das ZF gleichzeitig auch eine Templateengine à la Smarty oder lediglich eine Bibliothek für die Programmierung?

Jein. ZF implementiert ein Entwurfsmuster (Design-Pattern), das MVC genannt wird. Es handelt sich um eine Abkürzung und steht für Model-View-Controller.

Eine View ist in diesem Zusammenhang alles, was dem Benutzer präsentiert wird. Ein Form, eine Liste, ein widerkehrende Ansicht von ähnlichen Inhalten (Partial View). Wenn du so willst, ist die View das, was Smarty macht. Als Template-Sprache kommt normalerweise PHP zum Einsatz, ich habe allerdings einen View-Abstraktor für Smarty geschrieben, den ich gern zur Verfügung stellen kann, wenn Bedarf besteht - hab das Teil schon lange nicht mehr gebraucht, weil ich mit PHP selbst alles machen kann, was ich brauche.

Das Model ist eine Schnittstelle für alle möglichen Persistenzschichten. Willst du den Zugriff auf eine Datei, Datenbank oder sonstige Sachen, die irgendwas speichern und laden können - Webservices bpsw. - verwendest du ein Model. Das regelt den Zugriff und bietet minimale Geschäftslogik an. Stell es dir als ein Objekt vor, was z.B. einen Datensatz in einer Tabelle deiner Lieblingsdatenbank beinhaltet. Normalerweise hat es Getter und Setter und bietet eine Möglichkeit zum Speichern an.

Das interessanteste ist der Controller. Er kümmert sich darum, das die Daten aus den Models in die View kommen und verarbeitet Requests. Wenn du jetzt z.B. eine Seite http://www.test.de/news/Bundeskanzlerin-Merkel-dankt-ab.html (FAKE!) hast, könnte der Controller ein NewsController sein, der eine Methode "display()" implementiert. Der Controller kümmert sich dann darum, das aus dem Bundeskanzlerin-Merkel-dankt-ab.html eine URL wird, die an die display()-Methode übergeben wird um in dieser wiederum den zugehörigen Artikel mittels Model aus der Datenbank zu holen und die Daten an eine View zu binden.

Kompliziert, was? Nein eigentlich nicht.

Zend Framework bietet an, eine Web-Applikation wie eine normale Applikation auch zu programmieren.

EDIT: Im Anhang sieht man mal, wie das in Eclipse+PDT aussieht.
 

Anhänge

  • zf.example.png
    zf.example.png
    50,2 KB · Aufrufe: 6
Zuletzt bearbeitet:

Neue Beiträge

Zurück