Dieser Artikel stellt hauptsächlich den Unterschied zwischen der ThinkPHP-Version 5.0 und der ThinkPHP-Version 3.2 vor. Jetzt kann ich ihn mit Ihnen teilen
Version 5.0 sind ziemlich unterschiedlich. In diesem Artikel werden einige der Hauptunterschiede in 5.0 für Benutzer beschrieben, die mit Version 3.2 vertraut sind.
URL und Routing
5.0 Der URL-Zugriff unterstützt nicht mehr den normalen URL-Modus und das Routing unterstützt keine regulären Routendefinitionen, sondern alle Änderungen um variable Regeln (reguläre Definitionen) für das Regelrouting abzugleichen:
Die wichtigsten Verbesserungen sind wie folgt:
Routing-Variablenregeln hinzufügen Unterstützung für Kombinationsvariablen hinzufügen;
Unterstützung für Abschlussdefinitionen hinzufügen;
Unterstützung für URL-Routing-Regeln;
Anforderungsobjekt und Antwortobjekt
5.0 hat das Anforderungsobjekt Request und das Antwortobjekt Response Request hinzugefügt, um Anforderungen auf einheitliche Weise zu verarbeiten und Anforderungsinformationen abzurufen. Das Response-Objekt ist für die Ausgabe der Kundenantwort verantwortlich. Der Client oder Browser antwortet.
Module und ControllerDer Namespace des Controllers wurde angepasst und es besteht keine Notwendigkeit, eine Controller-Klasse zu erben. Der Anwendungsnamespace ist als App (definierbar) anstelle des Modulnamens vereinheitlicht. Der Klassenname des Controllers hat standardmäßig nicht das Controller-Suffix. Sie können den Parameter use_controller_suffix konfigurieren, um die Controller-Klasse zu aktivieren Suffix;
Steuerung: Die Controller-Operationsmethode verwendet die Rückgabemethode, um Daten anstelle der direkten Ausgabe zurückzugeben.Das Attribut beforeActionList hinzufügen, um Voroperationen zu definieren 🎜>Unterstützung der Controller-Definition und des Zugriffs auf jeder Ebene;
URL-Zugriff unterstützt die automatische Positionierung des Controllers
Datenbank
3.2 Version
M(' User')->where(['name'=>'thinkphp'])->find ();Version 5.0
Die wichtigsten Verbesserungen sind wie folgt:
Unterstützung verketteter Abfragevorgänge;Unterstützung für Datenabfragen Zurückgeben von Objekten, Arrays und PDOStatement-Objekten. Abfragekonstruktor hinzufügen. Unterstützt Blockabfragen Abfrage; fügt SQL-Listening-Ereignisse hinzu;
Modell
Im Grunde ist das Modell ein Vollständig objektorientiertes Konzept, einschließlich zugehöriger Modelle. Das Suffix der Modellklasse wird nicht mehr durch den Namensraum unterschieden. Der ursprüngliche D-Funktionsaufruf wird in die Modellfunktion geändert und die entsprechende Modellklasse muss erstellt werden , zum Beispiel:
Version 3.2D('User') ->where(['name'=>'thinkphp '])->find();
Version 5.0
model('User')->where( 'name','thinkphp')->find();Zu den wichtigsten Verbesserungen gehören: Rekonstruktion des Assoziationsmodells
Unterstützen Sie das Aggregationsmodell;Abschaffung des Ansichtsmodells (Änderung der Ansichtsabfragemethode der Datenbank);
Zugriffsmodifikatoren und Modifikatoren hinzufügen; Automatisches Schreiben von Zeitstempeln hinzufügen;Array-Zugriffsunterstützung Automatische Überprüfung und automatische Vervollständigung; >
Die automatische Datenüberprüfung und die automatische Vervollständigung von 5.0 unterscheiden sich erheblich von Version 3.2. Die Datenüberprüfung von 5.0 übernimmt die Validatordefinition und führt eine einheitliche Überprüfung über die thinkValidate-Klasse durch. Die automatische Vervollständigung erfolgt durch die Definition von Modifikatoren im Modell.
Ausnahmen
5.0 hat null Fehlertoleranz und löst standardmäßig Ausnahmen für jede Fehlerstufe aus (kann aber in der öffentlichen Anwendung verwendet werden). Dateien Legen Sie die Fehlerstufe fest) und die Ausnahmeseite wurde neu gestaltet, um detaillierte Fehlerinformationen für ein einfaches Debuggen anzuzeigen.
Debugging und Protokollierung
Die Erweiterung der Seitenverfolgung in 5.0 unterstützt die Browserkonsole zum Anzeigen von Trace-Informationen.
Der Protokolltreiber von 5.0 fügt den Socket-Modus hinzu und verwendet SocketLog zur Unterstützung des Remote-Debugging. Konstanten
Die Version 5.0 hat die meisten der ursprünglichen Konstantendefinitionen aufgegeben und nur die Pfadkonstantendefinitionen des Frameworks und den Rest der Konstanten beibehalten kann verwendet werden. Verwenden Sie zum Vervollständigen die relevanten Attribute oder Methoden der App-Klasse oder Request-Klasse oder definieren Sie die erforderlichen Konstanten selbst neu. Zu den veralteten Konstanten gehören: REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE _PATH Funktion Das Kernframework der Version 5.0 basiert nicht auf benutzerdefinierten Funktionen, kapselt aber dennoch einige allgemeine Funktionen in Hilfsfunktionen. Sie können Hilfsfunktionen nach Belieben neu definieren oder hinzufügen . 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.
Das obige ist der detaillierte Inhalt vonÜber den Unterschied zwischen der ThinkPHP5.0-Version und der ThinkPHP3.2-Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!