Heim > Artikel > Backend-Entwicklung > Stellen Sie kurz die spezifischen Unterschiede zwischen ThinkPHP5.0 und ThinkPHP3.2 vor
Der Herausgeber wird Ihnen eine kurze Diskussion über den Unterschied zwischen der ThinkPHP5.0-Version und der ThinkPHP3.2-Version geben. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf.
Die Version 5.0 unterscheidet sich erheblich von der Vorgängerversion. In diesem Artikel werden einige der Hauptunterschiede in 5.0 für Benutzer aufgeführt, die mit der 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 wird hinzugefügt 🎜>Unterstützt jede Ebene der
Controller-Definition und des Zugriffs;
URL-Zugriff unterstützt die automatische Positionierung des Controllers
Die Datenbankabfragefunktion von 5.0 wurde erweitert, was ursprünglich die Übergabe erforderte. Die Kettenabfrage, die nur vom Modell verwendet werden kann, kann direkt über die DB-Klasse aufgerufen werden. Der ursprüngliche M-Funktionsaufruf kann in die DB-Funktion geändert werden , zum Beispiel:
M('User')->where(['name'=>'thinkphp '])->find();
Version 5.0 db('User')->where( 'name','thinkphp')->find();
unterstützt Kettenabfragevorgänge ; Datenabfrage unterstützt die Rückgabe von Arrays und Sammlungsobjekten;
Abfragesyntax ändern; Blockabfrage;Ansichtsabfrage unterstützen;
Modell
Die Modelländerung in 5.0 Im Grunde ist das Modell ein vollständig objektorientiertes Konzept, einschließlich der zugehörigen Modelle. Das Suffix der Modellklasse trägt nicht mehr das Modell und wird direkt durch den Namensraum unterschieden. Der ursprüngliche D-Funktionsaufruf wird in die Modellfunktion geändert die entsprechende Modellklasse muss erstellt werden, zum Beispiel:
3.2 Version
D('User')->where([' name'=>'thinkphp'])->find();
Version 5.0
model('User ')->where('name','thinkphp')->find();Zu den wichtigsten Verbesserungen gehören:
Rekonstruieren Sie das Assoziationsmodell.
Getter hinzugefügt und Modifikatoren;Automatisches Schreiben von Zeitstempeln hinzugefügt;Typfeldkonvertierung hinzugefügt;Array-Zugriffsunterstützung;
JSON-SerialisierungUnterstü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 der Version 3.2. Die Datenüberprüfung von 5.0 verwendet die Gerätedefinition und die einheitliche Überprüfung thinkValidate-Klasse. 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 haben Sie die Ausnahmeseite 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, um Remote-Debugging zu unterstützen.
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_DEBU G. MODULE_PATH
Funktion
Das Kernframework der Version 5.0 ist nicht von einer benutzerdefinierten Funktion abhängig, kapselt aber dennoch einige allgemeine Funktionen in Hilfsfunktionen und Sie können sie nach Belieben neu definieren oder Hilfsfunktionen hinzufügen.
Das obige ist der detaillierte Inhalt vonStellen Sie kurz die spezifischen Unterschiede zwischen ThinkPHP5.0 und ThinkPHP3.2 vor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!