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, 03:24  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard MVC Verständnis

Guten morgen,

ich wage mich, nach etwas Literatur zum Thema, nun an das MVC-Pattern.
Zur Übung/Vertiefung schreibe ich gerade ein wenig non-sense Code.
Jetzt wüsste ich mal gerne ob folgendes korrekt ist...

Ich habe eine index.php (soll den Controller darstellen), diese prüft jetzt testweise ob ein bestimmter Get-Parameter übergeben wurde. Ist dies der Fall, bezieht der Controller von meiner Funktion getPath() (soll das Modell darstellen) einen passenden Pfad. Dieser Pfad wiederum wird letztendlich inkludiert (genauer gesagt eine PHP-Datei).

In der inkludierten Datei (soll ein weiteren Controller darstellen) wird Smarty instanziert und ein Testwert von einem weiteren Modell bezogen. Smarty gibt in der inkludierten Datei das passende Template aus (soll den view darstellen) und das wars.

Ist meine Vorstellung/Umsetzung von MVC zumindest theoretisch zutreffend?

Reinhaun! Solu

Geändert von Solu (09.02.2012 um 03:28 Uhr).
Solu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.02.2012, 07:39  
Neuer Benutzer
 
Registriert seit: 09.11.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
xe0n92 befindet sich auf einem aufstrebenden Ast
Standard

Verstehe nicht ganz was du hier versuchst zu erklären?!

Bestenfalls hast du einen FrontController, der dir "$_GET" Parameter in deinen AppController weitergibt.
Dein AppModel soll eine getPath() Funktion sein? Das AppModel ist die Datenholungsschicht!



Das erklärt doch eigentlich alles?

Schau dir auch noch folgende Grafik an:


Geändert von xe0n92 (09.02.2012 um 07:52 Uhr).
xe0n92 ist offline   Mit Zitat antworten
Alt 09.02.2012, 08:13  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, danke erstmal!
Was anderes...
Ich habe eine Funktion, welche ein Verzeichnis scannt worin weitere Verzeichnisse enthalten sind. Aus diesen Verzeichnissen erstellt mir die Funktion ein Array welches letztendlich voller Informationen returned wird. Zählt dieser Prozedere denn nicht auch zum Model? Ich sollte anmerken dass das Array sich auf den Controller und dann auf den View auswirkt.
Solu ist offline   Mit Zitat antworten
Alt 09.02.2012, 09:35  
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:
Ist meine Vorstellung/Umsetzung von MVC zumindest theoretisch zutreffend?
MVC ist ein OO-Design-Pattern, das man nachlesen kann. Das was Du da machst, ist, künstlich Scripte zu Komponenten zu erklären und zu behaupten, es wäre MVC.

Die Beispiele von xe0n92 sind übrigens auch nur _eine_ Interpretation von MVC im Webbereich. Nämlich diejenige, die den Browser als Viewelement versteht.
__________________
--
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, 11:59  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich stelle mir im Bezug auf die Grafik von xeOn92 die Frage warum der View nochmal zum Controller geht? Oder kann man sich Smarty als View vorstellen? Dann wäre mir das auch klar...
Solu ist offline   Mit Zitat antworten
Alt 09.02.2012, 12:10  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
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

Kann man, ja.
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 09.02.2012, 12:16  
Benutzer
 
Registriert seit: 25.09.2010
Beiträge: 77
PHP-Kenntnisse:
Fortgeschritten
Raisch befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Solu Beitrag anzeigen
Ich stelle mir im Bezug auf die Grafik von xeOn92 die Frage warum der View nochmal zum Controller geht? Oder kann man sich Smarty als View vorstellen? Dann wäre mir das auch klar...
1. ist das ja nur eine Möglichkeit wie das MVC auf Webanwendungen angewendet werden kann
2. stelle ich mir die Funktionsweise auf dem Bild so vor:
PHP-Code:
class FooController extends Controller
{
    const 
MODUL_START 'home';
    
    public function 
handleRequest( array $arrArguments )
    {
        if ( !isset( 
$arrArguments['get']['modul'] ) )
        {
            
$arrArguments['get']['modul'] = self::MODUL_START;
        }
        
        switch ( 
$arrArguments['get']['modul'] )
        {
            case 
self::MODUL_START:
                
$objModel = new FooModel$arrArguments ); // Execution Parameters to Model
                
                
$arrViewData $objModel->getIDontCareData(); // Resulting data Array from Model
                
                
if ( $arrViewData !== false )
                {
                    
$objView = new FooView$arrViewData ); // Resulting Data Array to View
                    
                    
$strOutput $objView->loadIDontCare(); // GUI Content from View
                
}
                else
                {
                    
$strOutput self::getError(); // Error as GUI Content?
                
}
                
                echo 
$strOutput// HTTP Response
            
break;
        
            
/*case self::MODUL_XX:
                
            break;*/
        
            
default:
                
// TODO: 404 error?
            
break;
        }
    }
}

$objController = new FooController();

// HTTP Requests
$objController->handleRequest(
    array(
        
'get'    => $_GET,
        
'post'   => $_POST,
        
'cookie' => $_COOKIE
    
)
); 
Ich hoffe, die Kommentare sind verständlich.

Gruß
Raisch ist offline   Mit Zitat antworten
Alt 09.02.2012, 12:16  
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

Zitat:
Zitat von Solu Beitrag anzeigen
Ich stelle mir im Bezug auf die Grafik von xeOn92 die Frage warum der View nochmal zum Controller geht?
Nunja ganze einfach, der Controller ist eigentlich eine Vermitllungseinheit zwischen Model und View. Normalerweise sollten Model und View nicht miteinander in Berührung kommen, dass aber sieht man häufig anders.
Das Model holt sich eigentlich nur Daten aus der Persitensschicht oder speichert sie da rein.
Wie die Persistensschicht aussieht ist dem Model, oder dem Mapper wie auch immer, vollkommen egal und das muss es auch nicht wissen.
Der Controller verarbeitet diese Daten, egal in welcher Form auch immer.
Die View gibt diese Daten einfach nur zurück.

Zitat:
Zitat von Solu Beitrag anzeigen
Oder kann man sich Smarty als View vorstellen? Dann wäre mir das auch klar...
Um Himmelswillen, nein. Smarty ist einfach nur eine Serverseitge Templateengine, die mMn keiner braucht.
__________________
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:27  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Smarty ist einfach nur eine Serverseitge Templateengine, die mMn keiner braucht.
Ich muss gestehen, dass es aus Sicht der Teamarbeit doch klare Vorteile bringt. Aber das ist nur meine Ansicht von Smarty...
Zitat:
Um Himmelswillen, nein.
Zitat:
Die View gibt diese Daten einfach nur zurück.
Tut doch Smarty so gesehen auch oder verdrehe ich doch etwas?!
Solu ist offline   Mit Zitat antworten
Alt 09.02.2012, 12:34  
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 nicht wirklich, ein View Objekt rendert dir den HTML. Bevor das passiert muss das aber erst mal durch den Amarty Parser gejagt werden.

Also Smarty ist im HTML drin und eine View rendert den fertig geparsten Content für die Ausgabe.
__________________
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
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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
xe0n92 php

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