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 Thema bewerten
Alt 29.05.2010, 13:45  
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

Bei dem genannten UML kann man sich IMHO auch die Factory für den Front-Controller sparen. Wenn das generisch genug implementiert ist, kann man diesen mit Anwendungs-relevanten Actions zur Laufzeit "konfigurieren" (siehe Front-Controller Timing-Model). Weiterhin würde ich den Router direkt vor dem Front-Controller sehen, denn dann kannst du dem FC wirklich die relevanten Parameter übergeben. Diese beinhalten dann in einem einfachen MVC (sprich kein HMVC) direkt die Informationen über zu auszuführenden Controller und zu ladenen View.

Wenn schon vereinfachen, dann bitte aber richtig!
__________________
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
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.05.2010, 17:00  
Neuer Benutzer
 
Registriert seit: 29.05.2010
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
schnipseljagd befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Bei dem genannten UML kann man sich IMHO auch die Factory für den Front-Controller sparen. Wenn das generisch genug implementiert ist, kann man diesen mit Anwendungs-relevanten Actions zur Laufzeit "konfigurieren" (siehe Front-Controller Timing-Model). Weiterhin würde ich den Router direkt vor dem Front-Controller sehen, denn dann kannst du dem FC wirklich die relevanten Parameter übergeben. Diese beinhalten dann in einem einfachen MVC (sprich kein HMVC) direkt die Informationen über zu auszuführenden Controller und zu ladenen View.

Wenn schon vereinfachen, dann bitte aber richtig!
Einspruch euer Ehren, die ControllerFactory kümmert sich im Vmvc um die Instanziierung des ActionControllers und entscheidet somit welche Konstruktor parameter übergeben werden müssen, wie sich der Klassenname zusammensetzt usw...davon sollte der FrontController meines Erachtens aber nichts wissen.
Um es kurz zu sagen, es ist mit Absicht nicht allzu generisch implementiert, und damit kann der FrontController diese Aufgabe hier nicht alleine erledigen.

Zu der direkten Übergabe der Router Parameter an den FC, hier bevorzuge ich lieber das Inversion of Control Prinzip und lasse den ApplicationController entscheiden was für den FC relevant ist (z.B. wenn ein ActionController einen Error zurückgibt, dann verweist der ApplicationController auf ein anderes View).

Ich hoffe ich konnte meinen Standpunkt einigermaßen verständlich erläutern
schnipseljagd ist offline   Mit Zitat antworten
Alt 29.05.2010, 22:31  
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 Schnipseljagt,

dann erschließt sich mir aber erst recht nicht, warum du eine MVC-Implementierung mit Application- und Action-Controller wählst, die noch zusätzlich einen Front-Controller besitzt. Hier ist IMHO das Front-Controller-Pattern verletzt, da der eigentliche Einstiegs-Punkte dann nicht dieser, sondern der Application-Controller der logische Einstiegs-Punkt für die Kapselung der MVC-Konstrukts ist.

Sofern du eine Kombination aus zwei spezialisierten Controllern einführst, sollte das IMHO konsequenterweise dazu führen, dass die Applikation dahinter mit dem HMVC-Pattern arbeitet. So kannst du den für MVC zunächst unnötigen Overhead auch vernünftig nutzen.
__________________
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
Alt 31.05.2010, 00:50  
Neuer Benutzer
 
Registriert seit: 29.05.2010
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
schnipseljagd befindet sich auf einem aufstrebenden Ast
Standard

hhm, Ja vielleicht ist die Bezeichnung Front-Controller in diesem Sinne wirklich nicht mehr ganz zutreffend.
Hab mal n Sequenz Diagramm (allerdings diesmal ohne Action-Controller) dazu hochgeladen: Vmvc FrontController Sequence Diagram.png

Über den HMVC-Ansatz werde ich mir mal Gedanken machen
schnipseljagd 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
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
include - get - big problem Buschdieb PHP-Fortgeschrittene 6 14.04.2006 20:28
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
Problem CSS Design HTML, Usability und Barrierefreiheit 3 27.09.2005 06:47
[PHP] Design Schutz für ein Gästebuch I-Spy PHP Tipps 2005 5 01.01.2005 11:25
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mvc factory php, frontcontroller php smarty saubere url, actioncontroller mvc php, php mvc with ajax, php factory mvc, uml hmvc pinwand, mvc uml php, php mvc factory, sequenzdiagramm mvc, forever 21, sequence diagram datenbank mvc, php mvc sequenzdiagramm, mvc frontcontroller php, php how to add smarty into mvc with applicationcontroller, front controller mvc php und applicationcontroller, php mvc actioncontroller, mvc php with login and action controller, mvc php action controller, mvc parametrisieren, hmvc frontcontroller

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:37 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