php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2012, 12:38  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Um Himmelswillen, nein.
Warum so entsetzt? Wenn man Smarty ins MVC Modell pressen will, ist das für mich ganz klar die View-Komponente.

Trotzdem...
Zitat:
Ist meine Vorstellung/Umsetzung von MVC zumindest theoretisch zutreffend?
...ziemlich weit entfernt davon. Das ist stinknormale prozedurale Programmierung, die nicht zu MVC wird indem du irgendwelchen Funktionen und Dateien das Label "Model" und "Controller" verpasst.

Als Denkanstoß: Nicht alles in einer Anwendung ist M, V oder C. Ursprünglich kommt MVC aus der GUI-Programmierung von Desktop-Anwendungen, bezieht sich also eigentlich nur auf die Oberfläche bzw. Präsentations-Schicht. Auf Web-Anwendungen lässt sich das durch die Einschränkung des status-losen HTTP-Protokolls nicht 1:1 übertragen, was zu den unterschiedlichsten Interpretationen und Abwandlungen geführt hat.
Aus diesen Gründen sind Aussagen wie "im Controller ist die Business Logik" oder "im Model ist die Business Logik" (findest du beides, je nach Interpretation) mit Vorsicht zu genießen. Da gibt es kein absolutes "richtig" oder "falsch", den Versuch, die ganze Anwendung irgendwie in MVC einzuordnen verfehlt IMHO allerdings den Zweck des Patterns und führt nicht zu sauberer Programmierung.
fab ist gerade online   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.02.2012, 12:50  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Das ist stinknormale prozedurale Programmierung, die nicht zu MVC wird indem du irgendwelchen Funktionen und Dateien das Label "Model" und "Controller" verpasst.
Ist mir klar, ich wollte wissen ob die Aufgaben zumindest vom denken her, richtig verteilt wären.
Zitat:
die ganze Anwendung irgendwie in MVC einzuordnen verfehlt IMHO allerdings den Zweck des Patterns und führt nicht zu sauberer Programmierung.
In meinem Fall ist es so: Die View (also Smarty in meinem Fall, auch wenn das noch nicht stimmig ist) gibt ein Layout der Seite aus. Welches Layout wird wiederum vom Controller entschieden bzw. letztendlich vom Model da dieses eine DB abfrägt welches genommen wird.
Weiterhin holt sich der Controller vom Model alle zur Vefügung stehenden Komponenten welche als Content dienen. Der Content wird ebenfalls wieder vom Controller der Template-Engine zugewiesen. Das Layout, lädt dann den Content mittelns include_php (lädt also die "Hauptdatei" (mittels Smarty) der Komponente, welche weitere Aktionen ausführt innerhalb der Komponente). Mit dem momentanen Wissensstand macht das in meinen Augen sinn.
Solu ist offline   Mit Zitat antworten
Alt 09.02.2012, 12:57  
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

Naja der Controller holt sich das nicht wirklich vom Model, sondern das Model stellt dem Controller Daten zur Verfügung, oder der Controller gibt dem Model Daten die es dann in der Persistentschicht oder sagen wir einfach mal Datenbank speichert.

MVC ist ansich so nicht wirklich das Problem, dass Problem ist nur das vieles auf Zwang ins MVC hinengepresst wird.

Die Anwendung baut sich aber im Prinzip anders auf, das MVC ist eben ein Pattern in der Präsentationsschicht. Drumherum passiert aber noch ne ganze Menge. Ich schlage vor du nimmst dir mal ein einfaches MVC Framework und schaust dir an wie das ganze da aufgebaut ist, dann kannst du vieleicht eher bessere Schlüsse ziehen.
__________________
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
Alt 09.02.2012, 12:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Welches Layout wird wiederum vom Controller entschieden bzw. letztendlich vom Model da dieses eine DB abfrägt welches genommen wird.
Ja. Aber Dein Controller ist kein typischer MVC-Controller, sondern eher ein Frontcontroller.

„Content“ ist im View-basiertem Ansatz wiederum eigentlich nur eine Eigenschaft der View-Schicht, nicht _die_ View-Schicht.

Wie bereits erwähnt, macht MVC eher Sinn in UI-lastigen Anwendungen oder Applikationen mit Verarbeitungs- und Anzeigelogik (z.B. in Teilkomponenten wie Gästebüchern oder allgemein Form-Komponenten).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 09.02.2012, 12:59  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

"Komponenten welche als Content dienen" - das verstehe ich nicht. Was ist jetzt für dich eine Komponente? "Das Layout, lädt dann den Content [...]" - Du inkludierst also View-Komponenten (Smarty-Templates nehme ich an?), die selbst Aktionen ausführen? Das sollte nicht so sein, was sind das denn z.B. für Aktionen?
Ein austauschbares Layout als Model ist auch fragwürdig, zumindest aber ein schlechtes Beispiel, um MVC zu verstehen, da dabei wieder verschiedene Bereiche vermischt werden.
fab ist gerade online   Mit Zitat antworten
Alt 09.02.2012, 13:20  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
"Komponenten welche als Content dienen" - das verstehe ich nicht.
Zitat:
"Das Layout, lädt dann den Content [...]" - Du inkludierst also View-Komponenten (Smarty-Templates nehme ich an?), die selbst Aktionen ausführen?
Das Layout lädt nicht, es inkludiert nur die gegebene Datei. Keine Smarty-Templates, sondern den Controller des Moduls

Ich denke, ich nehme hier mal den Begriff Modularität in den Mund auch wenn womöglich jetzt noch mehr Verwirrung auftaucht. Du musst es dir so vorstellen... Das "Modul" (z.B. eine Naviverwaltung oder so) ist vollkommen selbstständig. Es wird lediglich die module.php in das Layout inkludiert. Die module.php beinhaltet wiederum eine Smarty Instanz, welche das entsprechende Template des Moduls lädt (sind mehrere möglich), ein eigener Controller eben. Hoffe es ist verständlich...

Zitat:
Ein austauschbares Layout als Model ist auch fragwürdig
Das Model frägt die DB ab, welches Layout (Design-Technisch) gerade aktiv ist. Die Layouts unterscheiden sich also nur im Markup, beinhalten aber grob dasselbe. Verstehst?

Geändert von Solu (09.02.2012 um 13:24 Uhr).
Solu ist offline   Mit Zitat antworten
Alt 09.02.2012, 13:34  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von Solu Beitrag anzeigen
Das Model frägt die DB ab, welches Layout (Design-Technisch) gerade aktiv ist. Die Layouts unterscheiden sich also nur im Markup, beinhalten aber grob dasselbe. Verstehst?
Das habe ich schon verstanden, das ändert nichts daran dass es ein schlechtes Beispiel ist, um MVC zu begreifen. Denn es geht ja gerade darum, Aussehen, Inhalt und Interaktion voneinander zu trennen, du machst hier aber das Aussehen zum Inhalt, Verwirrung ist (vor)programmiert. Das war auch nur eine Randbemerkung, also zurück zum Haupt-Thema:

Zitat:
Zitat von Solu Beitrag anzeigen
Das Layout lädt nicht, es inkludiert nur die gegebene Datei. Keine Smarty-Templates, sondern den Controller des Moduls. [...]
Da lässt sich auch trefflich drüber streiten aber man kann es so machen. Bei geschachtelten Modulen, die alle ihre eigenen Controller haben, spricht man übrigens von HMVC, ein beliebtes Thema hier also wirf ruhig mal die Forensuche an wenn du tiefer in das Thema einsteigen willst.
fab ist gerade online   Mit Zitat antworten
Alt 09.02.2012, 13:48  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Bei geschachtelten Modulen, die alle ihre eigenen Controller haben, spricht man übrigens von HMVC, ein beliebtes Thema hier also wirf ruhig mal die Forensuche an wenn du tiefer in das Thema einsteigen willst.
Werde ich, dank dir mal
Solu ist offline   Mit Zitat antworten
Alt 09.02.2012, 13:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich empfehle Dir, erstmal MVC zu begreifen. HMVC ist noch ne Nummer zu groß bei dem Wissensstand.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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
[Erledigt] Verständnis non blocking stream McSodbrenner PHP-Fortgeschrittene 4 13.03.2011 13:49
[Erledigt] Session Verständnis Amenovis PHP Tipps 2010 7 06.10.2010 15:57
session_destroy() verständnis Problem Creator PHP Tipps 2010 3 01.08.2010 00:01
[Erledigt] Verständnis von Vererbungen und Klassenabstraktion Squall PHP Tipps 2010 15 14.04.2010 22:11
[Erledigt] verständnis von einem php tut bzgl salted hash taurus PHP Tipps 2009 5 29.09.2009 13:26
[Erledigt] REPLACE / INSERT IGNORE INTO - verständnis taurus Datenbanken 3 11.09.2009 21:55
audio datei encoden verständnis cyberholic PHP-Fortgeschrittene 5 26.04.2009 23:56
DELETE Verständnis Problem [gelöst] wishy Datenbanken 8 02.05.2007 13:05
problem bei verständnis mit bildmanipulation Promaetheus PHP Tipps 2007 18 17.04.2007 15:18
Verständnis Frage zu txt datei djma PHP Tipps 2006 5 23.05.2006 14:18
Zum Verständnis mysql php Netzverkehr rudolfs PHP Tipps 2006 1 15.01.2006 21:40
Verständnis: Design Patterns, Factorys, Singletons u. byRef HStev PHP-Fortgeschrittene 60 20.12.2005 13:46
Verständnis Problem 24bits PHP Tipps 2005-2 6 16.10.2005 23:00
Verständnis Problem bei Übergabe von Arrays imported_dex PHP Tipps 2005 2 05.03.2005 18:03
nur zum richtigen verständnis - mysql abfrage Datenbanken 4 21.07.2004 10:24


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