Dieser Artikel stellt hauptsächlich die Unterstützung von Multi-Layer-MVC in den neuen Funktionen von ThinkPHP3.1 vor. Jetzt kann ich ihn mit Ihnen teilen.
Standard Die Modellschicht besteht aus Modellklassen. Da das Projekt jedoch wächst und das Geschäftssystem komplexer wird, ist es für eine einzelne Modellschicht schwierig, die Anforderungen seit 3.1 zu erfüllen. In diesem Artikel wird hauptsächlich die Unterstützung von ThinkPHP3.1 Multi-Layer-MVC vorgestellt. Freunde, die sie benötigen, können sich auf
1 beziehen: Die Standardmodellebene besteht aus Model Da das Projekt jedoch wächst und das Geschäftssystem komplexer wird, ist es für eine einzelne Modellebene schwierig, die Anforderungen zu erfüllen. Ab 3.1 wurde die Designidee sehr einfach eingeführt Verschiedene Modellschichten erben weiterhin von der Modellklasse des Systems, es werden jedoch Unterschiede in der Verzeichnisstruktur und den Namenskonventionen vorgenommen. In einem bestimmten Projektdesign ist es beispielsweise erforderlich, zwischen verschiedenen Modellschichten wie Datenschicht, Logikschicht usw. zu unterscheiden. und Serviceschicht. Wir können Modell, Logik und Dienst im Lib-Verzeichnis des Projekts erstellen. Alle Modelloperationen in der Benutzertabelle sind in drei Schichten unterteilt:
Datenschicht : Model/UserModel wird verwendet, um datenbezogene automatische Überprüfung, automatische Vervollständigung und Datenzugriffsschnittstellen zu definieren
Logikschicht: Logic/UserLogic wird verwendet, um benutzerbezogene Geschäftslogik zu definieren
Serviceschicht: Service/UserService wird zum Definieren benutzerbezogener Serviceschnittstellen usw. verwendet.
Diese drei Modellbetriebsklassen können alle die Modellklasse erben, sodass der Betrieb von Benutzerdaten sehr klar ist. Beim Aufruf können Sie auch die integrierte D-Methode verwenden, um bequem Folgendes aufzurufen:
D('User') //实例化UserModel D('User','Logic') //实例化UserLogic D('User','Service') //实例化UserService
Die hierarchische Aufteilung der Modellebenen ist sehr flexibel und Entwickler können frei entscheiden Definieren Sie Hierarchien entsprechend den Anforderungen des Projekts.
2. Ansichtsebene: besteht aus einer Vorlage und einer Vorlagen-Engine, die direkt in der Vorlage verwendet werden kann Auch andere Template-Engines von Drittanbietern werden vom Treiber unterstützt. Mehrere Ebenen von Ansichten können leicht durch Verzeichnisse unterschieden werden, zum Beispiel:
Tpl/default/User/add.html Tpl/blue/User/add.html
3. Controller-Ebene: ThinkPHP-Steuerung Die Controller-Ebene besteht eines Kerncontrollers und eines Geschäftscontrollers wird durch die App-Klasse innerhalb des Systems vervollständigt und ist für die Planungssteuerung von Anwendungen (einschließlich Modulen und Vorgängen) verantwortlich, einschließlich des Abfangens und Weiterleitens von HTTP-Anfragen, des Ladens der Konfiguration usw Der Business Controller wird durch eine benutzerdefinierte Aktionsklasse vervollständigt. Version 3.1 bietet Unterstützung für mehrschichtige Service-Controller. Das Implementierungsprinzip ähnelt der Schichtung von Modellen wie Business Controllern und Event Controllern:
Action/UserAction //用于用户的业务逻辑控制和调度 Event/UserEvent //用于用户的事件响应操作
UserAction ist für externe Interaktionsantworten verantwortlich und antwortet über URL-Anfragen , wie http://serverName/User/index, und UserEvent ist für die interne Ereignisantwort verantwortlich und kann nur intern aufgerufen werden
A('User','Event');
, also ist von außen isoliert. Die Aufteilung von Multilayer-Controllern ist nicht zwingend erforderlich und kann je nach Projektbedarf frei geschichtet werden. In der Controller-Ebene können Sie nach Bedarf das Schichtmodell aufrufen oder die Ansichtsvorlagen verschiedener Verzeichnisse aufrufen.
Gleichzeitig kann die R-Methode auch den Aufruf von Multi-Layer-Controllern unterstützen. Ein dritter Parameter wird hinzugefügt, um den Layer-Namen des Controllers darzustellen, zum Beispiel:
R('User/register',array(15),'Event');
bedeutet, die Registermethode des UserEvent-Controllers aufzurufen und Parameter 15 zu übergeben.
In den drei Schichten von MVC ist ThinkPHP nicht von M oder V abhängig und kann sogar nur haben C oder nur V Das Design von ThinkPHP ist ein sehr wichtiges User Experience Design. Benutzer müssen nur die Ansicht definieren und es kann automatisch erkannt werden.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Eine umfassendere Einführung in die neuen Funktionen von ThinkPHP3.1, die Ajax unterstützen
Das obige ist der detaillierte Inhalt vonEinführung in die mehrschichtige MVC-Unterstützung in den neuen Funktionen von ThinkPHP3.1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!