php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 06.02.2011, 18:05  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Anhand meines Praktikums eine eher eigene Implementierung. Meine Chefin hat sich viel Mühe gegeben mir da was beizubiegen und das versuche ich nun umzusetzen. Wenn es soweit ist dann poste ich dir bzw. hier im Forum auf alle Fälle mal den Code. Momentan ist nur ein Beispiel anhand eines simplen Gästebuches, halt zur Übung um überhaupt erst mal ein Gefühl zu bekommen.

Momentan habe ich das so, ich habe einen frontController der so mit meinem MVC nichts weiter eigentlich zu tun hat. Über meine URL (hast du ja gesagt ist nicht so gut) lade ich zum Beispiel anhand eines Modul (?modul=) ein Model, View, Controller für die Darstellung des Index. Wenn ich nun z.B. einen Link klicke um zum Eintragsformular zu gelangen für einen neuen Eintrag lade ich anhand des action (?modul=gb&action=newEntry) meine Klassen NewEntryDatabaseModel, NewEntryController, NewEntryView. So war mein Grundgedanke dafür. Das heißt mein FrontController weiß von meiner MVC Implementierung nichts sondern lädt Klassen bzw. MVC Komponenten anhand der URL Adressierung. Daher denke ich bin ich schon ein wenig flexibel.

Was mich interessieren würde wie man, wenn man über URL Adressierung seine Klassen lädt das so übersetzen kann das es nun allgemein flexibel einsetzen kann. Denn soweit wie ich das gelernt oder besser gesagt verstanden habe sind Models, Controllers und Views ja doch immer Anwendungsspeziel. Ode rliege ich da falsch?

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.02.2011, 23:12  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo litter,

Zitat:
Denn soweit wie ich das gelernt oder besser gesagt verstanden habe sind Models, Controllers und Views ja doch immer Anwendungsspeziel. Ode rliege ich da falsch?
MVC-Elemente sind Anwendungs-spezifisch - korrekt. Deshalb sollte man versuchen, die Problem-Domäne zu abstrahieren. Einmal hast du das mit dem Front-Controller ja schon getan, andererseits sollte (auch aus meiner Erfahrung bestätigt) MVC an sich abstrahiert werden, denn in dieserm Bereich gibt es auch immer wieder gleichartige Aufgaben und Verhaltensweisen über Anwendungen hinweg. Ein Punkt ist das Thema Routing/URL-Mapping in einem statischen MVC-Modell so wie du es beschreibst. Das lässt sich recht einfach in eine eigene Action packen, die für jede Anwendung wieder eingesetzt werden kann - durch Konfiguration "personalisiert". Beim APF übernimmt diesen Job der Page-Controller, der sich um das Gerüst der Seite, dessen Views und Controller kümmert.

Treibst du das weiter, schickt es sich dafür eine Komponente einzusetzen, die sowohl das Management von MVC- oder gleich HMVC - übernimmt als sich auch in ein Konstrukt einpasst, das hinsichtlich der URL-Abstraktion unterstützt. Gerade das URL-Mapping bzw. -Layout ist ein Thema, was meiner Ansicht nach durch viele MVC-Umsetzungen (1:1-Mapping auf Controller) sehr strapaziert wird. Hier fordere ich eine Abstraktion über Input- und Output-Filter. Somit ist es nicht notwendig, einen Controller in der URL zu definieren, sondern dieser kann ganz einfach durch das Gesamtkonstrukt implizit oder durch die codierte URL mehr oder weniger explizit definiert werden. Damit schränkst du dich auch nicht in der Länge der URL ein, wenn du in einer komplexen Applikation mehrere Controller brauchst oder must Krücken wie View-Helper zu Hilfe nehmen, die nichts weiter tun als die Wiederverwendbarkeit kaputt zu machen. Such mal im Software-Design-Forum nach Beiträgen zum Thema URL-Layout, wir haben das Thema schon sehr ausführlich diskutiert.

Ein konkretes Beispiel für ein Mapping kommt wieder auf den Anwendungsfall an, kann aber grundsätzlich sehr einfach sein, denn das APF basiert beispielsweise auf dem Paradigma, dass nur die effektiv notwendigen Parameter in der URL enthalten sein müssen. Es ist nicht notwendig, alle Controller/Views in der URL zu codieren, die in einem HMVC-Baum notwendig sind. Nehmen wir an, du hast eine Seite mit einem Header, einem Menü und einem Content-Bereich und auch das Haupt-Template (in vielen MVC-Implementierungen auch "Layout" genannt). Das erfordert nach MVC 4 Views und Controller - vielleicht 1-2 Models. Musst du das in der URL abbilden, braucht es 4 Parameter, zur Ansteuerung der Impressum-Seite ist effektiv aber nur 1 Parameter notwendig. Genau diesen solltest du auch in der URL haben und das ist auch kein Problem, da die 3 anderen entweder durch die Struktur des Baumes oder der expliziten Auszeichnung in der URL definiert sind. Hierbei muss jedoch nicht der Controller in der URL definiert sein, sondern Parameter, die auf die Steuerung des Baumes Einfluss haben (z.B. Seite 2 anzeigen, ...).

Wenn dich das Konzept näher interessiert - es bietet meiner Meinung nach wirklich die größte Flexibilität -, können wir uns gerne in einem anderen Thread drüber unterhalten. Ich würde den Thread hier ungern hijacken.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Seite nur im Script aufrufbar BlackScorp PHP Tipps 2010 4 03.11.2010 15:57
[Erledigt] Klasse aus einer anderen Klasse aufrufen Tobby PHP-Fortgeschrittene 7 14.07.2010 20:05
Autoload: Klasse wird nicht eingebunden, obwohl der Pfad stimmt nuna PHP Tipps 2010 7 04.06.2010 14:03
[Erledigt] Nur einer bestimmten Klasse Zugriff andere Klasse erlauben Turamisi Software-Design 2 20.02.2010 20:31
Klasse für Objekteigenschaft erzeugen? Asipak PHP-Fortgeschrittene 25 30.05.2009 19:45
[Erledigt] Eine klasse einbinden newWorldOrder PHP Tipps 2009 2 23.02.2009 19:32
Mini-Tutorial: Autoload Exception bei nichtgefundener klasse brian johnson Wiki Diskussionsforum 10 23.01.2009 22:18
Methode einer anderen Klasse aufrufen Luka PHP-Fortgeschrittene 15 09.11.2008 14:19
Klasse aus externer Klasse aufrufen kostja PHP Tipps 2008 8 07.08.2008 14:13
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
[Erledigt] Führerschein für Klasse A+B.. Preis OK??? Off-Topic Diskussionen 20 13.07.2005 18:44
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php autoloader klasse, __autoload front controller

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum