dedlfix: PHP Index in MVC

Beitrag lesen

Tach!

Ich will meine Indexseite in MVC Paradigma aufspliten in derart wie pl es auch schon angesprochen hat.

Die Index-Seite in einem MVC-Framework ist üblicherweise keine Bestandteil des MVC-Musters. Bevor man die Steuerung an einen MVC-Controller übergeben kann, muss erstmal der Request soweit ausgewerter werden, dass man weiß, welcher Controller anzusteuern ist. Oder auch mehrere, wenn man seine Seite in Komponenten aufgeteilt hat und jeder Teil von einem eigenen MVC-Triplet behandelt wird.

Für die Index-Seite ist meist ein Front-Controller zuständig, der diverse anderen Komponenten heranzieht, wie beispielsweise einen Router, der die URL auswertet und die Route zum MVC-Controller findet.

class Index()
{
  public function __construct() {
    Head::__toString();
    Header::__toString();
    Meta::__toString();
    Nav::__toString();
    Article::__toString();
    Footer::__toString();
  }
}

new Index();

Ein Konstruktor ist zum Initialisieren der Klasse gedacht, nicht zum Erledigen der gesamten Arbeit. Für das einfache Beispiel reicht auch eine Funktion statt einer Klasse.

Ach ja ich hab im Webspace die Ordner so aufgelidert:

controler
config
-language
-message
-statement
model
view
-factory

Kann man machen, machen andere auch. Ist aber aus meiner Sicht nicht besonders toll. Diese Gliederung fasst Dinge anhand von äußerlichen Eigenschaften zusammen. Das ist in etwa so, wie wenn man in einer Firma die Leute nach Haarfarben sortiert die Büros zuweist. Ich finde besser, wenn nach fachlichen Gesichtspunkten zusammengefasst wird. Dann kann man in einem Ordner alles finden und muss sich nicht die Teile in verschiedenen Ordnern zusammensuchen, wenn man an einer bestimmten fachlichen Anforderung arbeitet.

Ich hab bei den Großmeistern wie Zend Framework gespickt aber die Masse, die zusätzlichen Skriptsprachen und die Zeitknappheit der Aubildung machen es mir schwer durchzusteigen.

Es gibt auch kleinere Beispiele für MVC-Frameworks.

  • Der ewige Kontextwechsel zwischen HTML und PHP in \View\Klassen machen mir zuschaffen

Es gibt da zwei Möglichkeiten. Die eine ist, die Ausgabelogik (bedingte Teile, Schleifen, Kontextbeachtung) in der View mit PHP zu erledigen. PHP ist eine Template-Sprache und kann das alles selbst.

Die andere ist, ein Template-System zu haben, das die Logik in eigene Platzhalter verpackt. Aber wie auch immer, du kommst um Ausgabelogik nicht drumherum und musst immer zwei verschiedene Syntaxsysteme mischen.

  • Die sprache und konfigurationen wie das was im <head>-Tag geschiet spielt auch ne rolle

Was willst du damit sagen?

dedlfix.