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 21.12.2011, 12:17  
archer42
Gast
 
Beiträge: n/a
Standard Verständisfrage zum MVC Konzept

Hallo,
ich möchte mich bald mit dem (H)MVC beschäftigen, allerdings habe ich hierzu noch einige unklarheiten.

Ich mache mal ein Beispiel, wie ich mir momentan den Ablauf eines MVCs vorstelle:


1. Client klickt auf einen Link
Code:
<a href="index.php?section=login">Anmelden</a>
2. Der Controller nimmt $_GET['section'] entgegen

3. Nun gibt der Controller an den (das?) Model den Auftrag alle Daten (meta, links, navigation, js, inhalt usw.) aus der Datenbank abzufragen in dem nach dem Datensatz für den login Bereich gesucht wird. Diese Abfrage wird dann in einem zweidimensionalen Array gespeichert
PHP-Code:
$data = array();
$data['header'] = 'Überschrift 1';
$data['article']  = 'blablablablabla';
//... 

4. Der Controller übergibt das Array mit den Daten an den View, welcher ein HTML Dokument zusammenstellt, indem es die im array gespeicherten Daten Stück für Stück in den passenden HTML Teil einsetzt.

5. Der View hat nun das HTML Dokument erstellt und in einen weiteren Array (Zeile für Zeile) gespeichert. Der Kontroller gibt den kompletten Array dann aus.



So denke ich mir das ganz grob. Wo sind nun Fehler?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.12.2011, 13:58  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

...das dürfte deine Fragen beantworten:

http://tutorials.lemme.at/mvc-mit-php/

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 21.12.2011, 14:51  
archer42
Gast
 
Beiträge: n/a
Standard

Danke wolf29,

das hat mir in der Tat geholfen

Wäre es eigentlich nicht besser, wenn der View eine Klasse instanziert, welche die komplette HTML Seite generiert?
So würde man das Problem mit den Templates umgehen und die Seite wäre viel dynamischer.
Ist das zu empfehlen oder sollte man davon Abstand nehmen?
  Mit Zitat antworten
Alt 21.12.2011, 15:32  
Erfahrener Benutzer
 
Benutzerbild von DrDreistein
 
Registriert seit: 23.03.2011
Beiträge: 134
PHP-Kenntnisse:
Anfänger
DrDreistein befindet sich auf einem aufstrebenden Ast
Standard

Wo ist denn das Problem mit den Templates?
__________________
Ein Rudel agressiver Wölfe nennt man auch Wolfgang.
Alles, was das PHP-Herz begehrt - Staticfloat
DrDreistein ist offline   Mit Zitat antworten
Alt 21.12.2011, 15:43  
archer42
Gast
 
Beiträge: n/a
Standard

Zitat:
Wo ist denn das Problem mit den Templates?
Das es schwierig wird etwas am HTML Code zu ändern. Beispielsweise man möchte weitere <meta />-Tags hinzufügen.
  Mit Zitat antworten
Alt 21.12.2011, 17:13  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Was hindert dich daran den head-Bereich in einen eigenen View auszulagern und entsprechend um Methoden zu erweitern, welche bspw. einen meta-Tag hinzufügen können?
Trainmaster ist offline   Mit Zitat antworten
Alt 21.12.2011, 17:35  
Erfahrener Benutzer
 
Benutzerbild von DrDreistein
 
Registriert seit: 23.03.2011
Beiträge: 134
PHP-Kenntnisse:
Anfänger
DrDreistein befindet sich auf einem aufstrebenden Ast
Standard

Also ich schreib jetzt seit ca. einer Woche an einem Wordpress Template und hab eigentlich kein Problem damit weitere Meta-Tags einzufügen. Ich denke mit anderer Software verhält sich das ähnlich.
__________________
Ein Rudel agressiver Wölfe nennt man auch Wolfgang.
Alles, was das PHP-Herz begehrt - Staticfloat
DrDreistein ist offline   Mit Zitat antworten
Alt 21.12.2011, 18:18  
archer42
Gast
 
Beiträge: n/a
Standard

Zitat:
Was hindert dich daran den head-Bereich in einen eigenen View auszulagern und entsprechend um Methoden zu erweitern, welche bspw. einen meta-Tag hinzufügen können?
Das war ja eigentlich meine Frage:
Semidynamisch vs. Volldynamisch - Sollte man ein HTML Document komplett generieren lassen mit den Daten des Models oder sollte man sich auf die häufigsten dynamischen inhalte (content) beschränken?

Zitat:
Ich denke mit anderer Software verhält sich das ähnlich
Hmm ich dachte da konkret an das Beispiel, wenn man eine Riesenwebseite betreiben würde. Eine Seite, welche z.B. aus Blog, Seite, Forum, Verkaufssystem besteht. Da benötigt jedes Teil z.T. andere Werte im <head> Bereich (z.B. Blogs pingback).
Oder habe ich das falsch verstanden?
  Mit Zitat antworten
Alt 21.12.2011, 19:37  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Das Setzen solcher Werte gehört idealerweise in den Verarbeitungsteil. Entsprechende Logik sollte abgearbeitet sein, sobald die „Ausgabe“ beginnt (EVA-Prinzip).

In dem Lemme-Tutorial wäre die passende Stelle etwa in den case-Zweigen in Controller::display.

Eine View ist lediglich dafür zuständig, übergebene Daten in ein Ausgabeformat zu rendern.

Diese Trennung wird allerdings – sei es fälschlicher- oder notwendigerweise – manchmal aufgeweicht. Das heißt im Grunde: Die View erhält Zugriff auf andere Bestandteile der Software, die sie eigentlich nicht kennen muss.

Ich sehe diese Aufweichung prinzipiell als Designfehler an.
__________________
Blog | Buch | Kaloa

Geändert von mermshaus (21.12.2011 um 20:01 Uhr).
mermshaus ist offline   Mit Zitat antworten
Alt 21.12.2011, 20:28  
archer42
Gast
 
Beiträge: n/a
Standard

Zitat:
Das Setzen solcher Werte gehört idealerweise in den Verarbeitungsteil. Entsprechende Logik sollte abgearbeitet sein, sobald die „Ausgabe“ beginnt (EVA-Prinzip).

In dem Lemme-Tutorial wäre die passende Stelle etwa in den case-Zweigen in Controller::display.

Eine View ist lediglich dafür zuständig, übergebene Daten in ein Ausgabeformat zu rendern.

Diese Trennung wird allerdings – sei es fälschlicher- oder notwendigerweise – manchmal aufgeweicht. Das heißt im Grunde: Die View erhält Zugriff auf andere Bestandteile der Software, die sie eigentlich nicht kennen muss.

Ich sehe diese Aufweichung prinzipiell als Designfehler an.
Falschen Thread erwischt
An sich wahre Gegebenheiten, aber nicht direkt die Beantwortung der Frage
  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
Konzept: Websites thematisch ordnen solar22 Off-Topic Diskussionen 14 25.10.2011 00:41
[Erledigt] Konzept: Verschlüsselung Phantomias Datenbanken 42 27.07.2011 10:53
Multilinguale Webseite - suche gutes Konzept! HelloPHP! PHP Einsteiger 25 02.03.2011 15:32
Fehlermeldungen und Fehlercodes, Konzept? Dark Guardian Software-Design 14 17.02.2011 09:41
[Erledigt] Konzept Model von MVC coola PHP-Fortgeschrittene 37 09.01.2011 17:58
[Erledigt] Framework Kernel Konzept Geryon Software-Design 36 06.10.2010 22:23
Konzept einer Datenbankabstraktion Dark Guardian Software-Design 29 30.01.2010 18:13
[Erledigt] Konzept für einen PHP Web Crawler Dark Guardian Software-Design 10 23.11.2009 16:31
Konzept für Bowsergame Wiillli Beitragsarchiv 1 21.10.2009 15:18
kleines DB Konzept Tomte Datenbanken 21 23.08.2008 10:22
Konzept Frage (2), DB Package greg PHP-Fortgeschrittene 0 15.07.2006 14:19
Überdenken des Konzept: Eigene Bildergalerien für User pixelcut PHP-Fortgeschrittene 3 16.01.2006 18:40
Konzept GFX-Community PHP Tipps 2005-2 2 22.08.2005 10:22
[Erledigt] Multigaming Warscript Konzept PHP-Fortgeschrittene 6 30.08.2004 20:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mvc konzept

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