suchen
HeimBackend-EntwicklungPHP-TutorialMehrschichtige MVC-Nutzungsanalyse des TP-Frameworks

Dieser Artikel stellt hauptsächlich die Verwendung von thinkphp Multi-Layer-MVC vor und analysiert die spezifischen Prinzipien und zugehörigen Verwendungsfähigkeiten von Multi-Layer-MVC in thinkPHP anhand von Beispielen. Ich hoffe, es hilft allen.

Die Details sind wie folgt:

ThinkPHP unterstützt mehrschichtiges Design.

1. Modellebenenmodell

Verwenden Sie bei Bedarf eine mehrschichtige Verzeichnisstruktur und Namenskonvention, um ein mehrschichtiges Modell zu entwerfen, beispielsweise im Projektdesign Unterscheiden Sie zwischen Datenschicht und Logikschicht. Verschiedene Modellschichten wie Schicht und Dienstschicht können Modell-, Logik- und Dienstverzeichnisse unter dem Modulverzeichnis erstellen und alle Modelloperationen in der Benutzertabelle in drei Schichten unterteilen.

1.Model/UserModel wird verwendet, um datenbezogene automatische Überprüfung, automatische Vervollständigung und Datenzugriffsschnittstellen zu definieren

2.Logic/UserLogical wird verwendet, um benutzerbezogene Geschäftslogik zu definieren

3.Service/UserService wird verwendet, um benutzerbezogene Serviceschnittstellen zu definieren

Diese drei Modelle erben alle die Model-Klasse, beispielsweise die Datenschicht Home/Model/UserModel.class.php


namespace Home\Model;
use Think\Model;
class UserModel extends Model{}


Logikschicht Home/Logic/UserLogical.class.php


namespace Home\Logic;
use Think\Model;
class UserLogic extends Model{}


Serviceschicht Home/Service/UserService.class.php


namespace Home\Service;
use Think\Model;
class UserService extends Model{}


wird aufgerufen Sie können die integrierte D-Methode oder M-Methode verwenden, um


D('User') //实例化UserModel
D('User','Logic') //实例化UserLogic
D('User','Service') //实例化UserService


aufzurufen, um die unter gespeicherten Daten aufzurufen Die Standardmodellebene Model Es gibt keinen zweiten Parametermodelldateinamen beim Abrufen der Schnittstellenklasse. Die Standardmodellebene kann auch wie folgt geändert werden:

'DEFAULT_M_LAYER' => 'Logic', // Ändern Sie die Standardmodellebene. Wenn der Name Logic


lautet, muss die Instanziierungsmethode entsprechend geändert werden


D('User') //实例化UserLogic
D('User','Model') //实例化UserModel
D('User','Service') //实例化UserService


Sie können sehen, dass die Verwendung von D('User') standardmäßig die UserLogice-Klasse instanziiert. Dies ist sehr flexibel. Wenn wir Daten überprüfen, erfolgt die automatische Vervollständigung in js und der Datenabruf erfolgt aus die Service-Schnittstelle Ja, auf diese Weise benötigen Sie nur eine Service-Schicht und andere Schichten werden nicht benötigt.

2. Ansichtsebene Ansicht

Eine gängige Vorlage von Drittanbietern ist .tpl. Sie können PHP-Code direkt verwenden Die Vorlage kann einfach durch die Verwendung von Verzeichnissen (Vorlagenthemen) unterschieden werden, zum Beispiel:

View/default/User/add.html
View/blue/User/add.html

Komplexere mehrschichtige Ansichten können auch durch verschiedene Ansichtsverzeichnisse unterschieden werden, zum Beispiel:

Gemeinsames Ansichtsebenenverzeichnis anzeigen
Ansichtsebenenverzeichnis für den Zugriff auf Mobiltelefone

Auf diese Weise können verschiedene Vorlagen unterschiedliche Seitenstile verwenden, und das Standardansichtsverzeichnis kann auch wie folgt verwendet werden:

'DEFAULT_V_LAYER' => 'Mobile', // 默认的视图层名称更改为Mobile

3. Controller-LayerController

ThinkPHP-Controller haben zwei Kategorien, eine ist der Kerncontroller und die andere ist der Geschäftscontroller Das ThinkPHP-Verzeichnis, z. B. thinkphpThinkPHPLibraryThinkControllerHproseController .class.php, ist für die Planungssteuerung der Anwendung verantwortlich, einschließlich Abfangen, Weiterleiten, Laden der Konfiguration usw. von HTTP-Anforderungen. Was wir hier besprechen werden, ist der Business Controller, der durch die benutzerdefinierte Controller-Klasse vervollständigt wird. Das Implementierungsprinzip des mehrschichtigen Business Controllers ähnelt der Schichtung des Modells, z. B. Business Controller und Event Controller.


Controller/UserController //用于用户的业务逻辑控制和调度
Event/UserEvent //用于用户的事件响应操作


Es sieht sehr hochwertig aus. Es gibt nur sehr wenige Benutzerereignisse in der Webentwicklung , und die meisten davon sind in js abgeschlossen.

Access Controller Home/Controller/UserController.class.php ist wie folgt definiert:


namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
}


Ereignis Steuerung Die Definition des Hosts Home/Event/UserEvent.class.php lautet wie folgt:


namespace Home\Event;
use Think\Controller;
class UserEvent extends Controller{
}


UserContrlller ist verantwortlich für Externe Interaktionsantwort, über URL-Anfrageantwort, wie http://serverName/User/index, UserEvent ist für die interne Ereignisantwort verantwortlich und kann nur A('Benutzer','Ereignis') intern aufrufen. Ebenso können wir die Standardeinstellung festlegen Controller-Schicht:

'DEFAULT_C_LAYER' => 'Event', // 默认的控制器层名称改为Event

Die Innen- und Außenseite sind isoliert und mehrschichtige Controller sind nicht zwingend erforderlich. Sie können entsprechend den Anforderungen der Anwendung frei geschichtet werden Im Controller können je nach Bedarf auch verschiedene Ebenenmodelle angezeigt werden. Eine Ebenenansicht zur Implementierung verschiedener Themen.

In den drei Schichten von MVC verlässt sich ThinkPHP nicht auf M und V. Es kann nur C oder nur V haben. Der Benutzer muss nur die Ansicht definieren und kann sie ohne C automatisch erkennen, aber Diese seltsame Schreibmethode wird viele Programmierer verwirren, die gerade erst angefangen haben.

Mehrschichtiges Design wurde im aktuellen Projekt nicht verwendet, aber ich habe es oft in .net-Projekten gesehen, ich werde bei der nächsten Verwendung weitere hinzufügen.

Verwandte Empfehlungen:

Beispiel für die TP5-Auth-Berechtigungsverwaltung

Detaillierte Erläuterung des automatischen Lademechanismus von TP5

Zusammenfassung der TP5-Modellfunktionen

Das obige ist der detaillierte Inhalt vonMehrschichtige MVC-Nutzungsanalyse des TP-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Erläutern Sie das Konzept einer PHP -Sitzung in einfachen Worten.Erläutern Sie das Konzept einer PHP -Sitzung in einfachen Worten.Apr 26, 2025 am 12:09 AM

PhpSessionStrackUserDataacrossMultiplePageRequestsusesuseiquiTIdStoredInacookie.her'ShowtomagetheFectiv: 1) StartaSessionswithSession_start () und storateatain $ _Session.2) regeneratethessionSessionInoginWithSession_IDENT_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTEL

Wie schleifen Sie alle in einer PHP -Sitzung gespeicherten Werte durch?Wie schleifen Sie alle in einer PHP -Sitzung gespeicherten Werte durch?Apr 26, 2025 am 12:06 AM

In PHP können durch Sitzungsdaten in den folgenden Schritten iteriert werden: 1. Starten Sie die Sitzung mit Session_Start (). 2. Iterieren Sie durch die Foreach-Schleife durch alle Schlüsselwertpaare im $ _Session-Array. 3. Wenn Sie komplexe Datenstrukturen verarbeiten, verwenden Sie is_array () oder is_object () Funktionen und verwenden Sie print_r (), um detaillierte Informationen auszugeben. 4. Bei der Optimierung von Traversal kann Paging verwendet werden, um eine gleichzeitige Verarbeitung großer Datenmengen zu vermeiden. Auf diese Weise können Sie PHP -Sitzungsdaten in Ihrem tatsächlichen Projekt effizienter verwalten und verwenden.

Erklären Sie, wie Sie Sitzungen für die Benutzerauthentifizierung verwenden.Erklären Sie, wie Sie Sitzungen für die Benutzerauthentifizierung verwenden.Apr 26, 2025 am 12:04 AM

Die Sitzung realisiert die Benutzerauthentifizierung über den serverseitigen Statusverwaltungsmechanismus. 1) Erstellung der Sitzung und Erzeugung eindeutiger IDs, 2) IDs werden durch Cookies weitergeleitet, 3) Server speichert und greift auf Sitzungsdaten über IDs, 4) Benutzerauthentifizierung und Statusverwaltung zugeordnet und verbessert die Sicherheit und die Benutzererfahrung von Anwendungen.

Geben Sie ein Beispiel dafür, wie Sie den Namen eines Benutzers in einer PHP -Sitzung speichern.Geben Sie ein Beispiel dafür, wie Sie den Namen eines Benutzers in einer PHP -Sitzung speichern.Apr 26, 2025 am 12:03 AM

TostoreaussersnameInaphpSession, startTheSessionwithSession_Start (), thenAnthenameto $ _Session ['Benutzername']

Was sind einige häufige Probleme, die dazu führen können, dass PHP -Sitzungen scheitern?Was sind einige häufige Probleme, die dazu führen können, dass PHP -Sitzungen scheitern?Apr 25, 2025 am 12:16 AM

Gründe für einen Phpessionsfehler sind Konfigurationsfehler, Cookie -Probleme und Sitzungsablauf. 1. Konfigurationsfehler: Überprüfen Sie die richtige Sitzung und setzen Sie die korrekte Sitzung. 2. Kookie -Problem: Stellen Sie sicher, dass der Cookie korrekt eingestellt ist. 3.Sesion läuft ab: Passen Sie die Sitzung an.

Wie debuggen Sie Probleme im Zusammenhang mit Sitzungen in PHP?Wie debuggen Sie Probleme im Zusammenhang mit Sitzungen in PHP?Apr 25, 2025 am 12:12 AM

Zu den Methoden zur Debugg -Sitzungsprobleme in PHP gehören: 1. Überprüfen Sie, ob die Sitzung korrekt gestartet wird. 2. Überprüfen Sie die Lieferung der Sitzungs -ID; 3. Überprüfen Sie den Speicher und das Lesen von Sitzungsdaten. 4. Überprüfen Sie die Serverkonfiguration. Durch Ausgabe von Sitzungs-ID und Daten, Anzeigen von Sitzungsdateiinhalten usw. können Sie effektiv Diagnose und Lösen von Sitzungen im Zusammenhang mit Sitzungen diagnostizieren und lösen.

Was passiert, wenn Session_Start () mehrmals aufgerufen wird?Was passiert, wenn Session_Start () mehrmals aufgerufen wird?Apr 25, 2025 am 12:06 AM

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Wie konfigurieren Sie die Sitzungslebensdauer in PHP?Wie konfigurieren Sie die Sitzungslebensdauer in PHP?Apr 25, 2025 am 12:05 AM

Das Konfigurieren des Sitzungslebenszyklus in PHP kann durch Einstellen von Sitzungen erreicht werden. 1) Session.gc_maxLifetime steuert die Überlebenszeit der serverseitigen Sitzungsdaten, 2) Sitzung.cookie_Lifetime steuert den Lebenszyklus von Client-Cookies. Wenn der Keks auf 0 eingestellt ist, läuft es, wenn der Browser geschlossen ist.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools