Heim > Backend-Entwicklung > PHP-Tutorial > MVC-Programmierung in PHP verstehen – Einführung in das MVC-Framework

MVC-Programmierung in PHP verstehen – Einführung in das MVC-Framework

巴扎黑
Freigeben: 2023-03-02 17:38:01
Original
1256 Leute haben es durchsucht

【Was ist MVC? ]

MVC ist ein Konzept, mit dem Sie „drei Teile (nämlich den vollständigen Namen von MVC, Modell, Ansicht und Controller)“ harmonisch kombinieren können, um eine komplexe Anwendung zu bilden. Ein Auto ist ein sehr gutes Beispiel für MVC im wirklichen Leben. Wenn wir uns ein Auto ansehen, schauen wir uns zwei Teile an: das Innere und das Äußere. Beides ist untrennbar mit einem Controller verbunden: dem Fahrer. Das Bremssystem, das Lenkrad und andere Steuerungssysteme stellen das Modell dar: Sie übernehmen die Steuerungsmethoden vom Fahrer (Controller) und wenden sie auf den Innen- und Außenbereich an (Ansicht).

【MVC im Internet】

Die vom MVC-Framework abgedeckten Konzepte sind recht einfach und äußerst flexibel. Das Grundkonzept besteht darin, dass Sie über einen einzigen Controller (z. B. index.php) verfügen, der alle Anwendungen innerhalb des Frameworks steuert, die auf Parameteranforderungen basieren. Dieser Controller enthält normalerweise (mindestens) einen Parameter, der das Modell definiert, ein Ereignis und einen GET-Parameter. Auf diese Weise kann der Controller alle Anfragen bestätigen und die entsprechenden Ereignisse ausführen. Beispielsweise wird eine Anfrage wie diese /index.php?module=foo&event=bar wahrscheinlich verwendet, um eine Klasse namens foo zu laden und dann foo::bar()[was eine bar()-Funktion ist] auszuführen. Die Vorteile davon sind:

Eine Schnittstelle, die allen Anwendungen entspricht

Es ist sehr mühsam, unzählige Codes gleichzeitig in einer Anwendung zu verwalten, da jeder Codeabschnitt seinen eigenen relativen Pfad hat und Datenbankverknüpfung, Verifizierung usw. Dadurch ersparen Sie sich diesbezüglich die Mühe und können Code zusammenführen und wiederverwenden

【Warum das eigene MVC-Framework des Autors erstellen? ]

Bisher habe ich nicht allzu viele in PHP geschriebene MVC-Frameworks gesehen. Tatsächlich kenne ich nur eines – Solar, das vollständig in PHP5 geschrieben ist. Das andere ist Cake, ein RoR, das versucht, PHP zu sein (Rubyalign=centerbgColor=#e3e3e3border=1>

<?php 
 require_once('config.php');//Otherrequires,DBinfo,etc. 
 $APP_DB='mydb'; 
 $APP_REQUIRE_LOGIN=false;//Settotrueifscriptrequireslogin 
 $APP_TEMPLATE_FILE='foo.php';//Smartytemplate 
 $APP_TITLE='MyApplication'; 
 if($APP_REQUIRE_LOGIN==true){ 
if(!isset($_SESSION['userID'])){ 
 header("Location:/path/to/login.php"); 
 exit(); 
} 
 } 
 $db=DB::connect('mysql://'.$DB_USER.':'.$DB_PASS.'@localhost/'.$APP_DB); 
 if(!PEAR::isError($db)){ 
$db->setFetchMode(DB_FETCHMODE_ASSOC); 
 }else{ 
die($db->getMessage()); 
 } 
 //Putyourlogichere 
 //Outputthetemplate 
 include_once(APP_TEMPLATE_PATH.'/header.php'); 
 include_once(APP_TEMPLATE_PATH.'/'.$APP_TEMPLATE_FILE); 
 include_once(APP_TEMPLATE_PATH.'/footer.php'); 
?>
Nach dem Login kopieren


OMG, wenn ich mir nur diesen Code anschaue, erschaudere ich. Dieser Absatz Das Konzept Der Code soll sicherstellen, dass jede Anwendung an diese Verarbeitungsmethode angepasst werden kann. Ich kann beispielsweise template.txt in myapp.php kopieren, ein paar Variablen ändern und schon funktioniert diese Organisation Gibt es einige gravierende Nachteile des strikten Ansatzes:

Was passiert, wenn mein Chef möchte, dass der Autor in einigen Fällen myapp.php zur Ausgabe von PDF, in einigen Fällen von HTML und in einigen Fällen von direkt übermittelten XML-Anfragen verwendet? Was mache ich?

Was mache ich, wenn diese Anwendung eine IMAP- oder LDAP-Authentifizierung erfordert

Wie gehe ich mit den verschiedenen Codes um (einschließlich Bearbeiten, Aktualisieren und Löschen)?
Wie gehe ich mit der mehrstufigen Verifizierung um (Administrator vs. Nicht-Administrator)?
Wie aktiviere ich das Ausgabe-Caching? Bitte geben Sie die Quelle für den Nachdruck an

【Neuer Weg】 】

Werfen Sie alles in dieses MVC-Framework und Sie werden feststellen, dass das Leben so einfach ist. Bitte vergleichen Sie den folgenden Code:


<?php 
 classmyappextendsFR_Auth_User 
 { 
publicfunction__construct() 
{ 
 parent::__construct(); 
} 
 publicfunction__default() 
 { 
//Dosomethinghere 
 } 
 publicfunctiondelete() 
 {} 
 publicfunction__destruct() 
 { 
parent::__destruct(); 
 } 
} 
?>
Nach dem Login kopieren
Hinweis: Dieser Code ist offensichtlich Wird nicht verwendet, um eine Verbindung zu einer Datenbank herzustellen, festzustellen, ob ein Benutzer angemeldet ist, oder um andere Informationen auszugeben.


Wenn ich mich bei LDAP authentifizieren möchte, kann ich FR_Auth_LDAP einrichten. B. $_GET['output']) und kann jederzeit in PDF oder SOAP konvertiert werden. Der Ereignishandler delete ist nur für das Löschen verantwortlich, da dieses Modul über eine Instanz der FR_User-Klasse verfügt Benutzer hat sich angemeldet usw. Smarty steuert als Template-Engine den Cache, aber der Controller kann auch einen Teil des Caches steuern.

Von der oben erwähnten alten Methode zur MVC-Methode Für viele Menschen ein neues und ungewohntes Konzept, aber wenn man erst einmal auf ein solches Konzept umgestiegen ist, wird es ziemlich schwierig sein, wieder zurück zu wechseln

Verwandte Etiketten:
mvc
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage