Die
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/020/5d16d4ae8cd5f951.jpg" class="lazy" alt="Der Unterschied zwischen thinkphp5 und 3.2" >
thinkphp5.0
-Version unterscheidet sich erheblich von der Vorgängerversion. In diesem Artikel werden einige der Hauptunterschiede von 3.2
für Benutzer aufgeführt, die mit der 5.0
-Version vertraut sind.
URL und Route
5.0
Der URL-Zugriff unterstützt nicht mehr den normalen URL
-Modus und das Routing unterstützt keine regulären Routendefinitionen. Stattdessen werden sie alle in reguläre Routen mit Variablen geändert Regeln (reguläre Definition):
Die wichtigsten Verbesserungen sind wie folgt;
Routing-Variablenregeln hinzufügen;
Unterstützung für Kombinationsvariablen hinzufügen;
Ressourcenrouting hinzufügen ;
Routengruppierung hinzufügen;
MISS-Routendefinition hinzufügen;
Anforderungsobjekt und Antwortobjekt 🎜>
Anforderungsobjekt
und Antwortobjekt
hinzugefügt, um Anforderungen einheitlich zu verarbeiten und Anforderungsinformationen abzurufen. Das Objekt
ist für die Ausgabe von Client- oder Browserantworten verantwortlich. 5.0
Request
Module und ControllerResponse
Request
Der Namespace des Controllers wurde angepasst und es besteht keine Notwendigkeit, eine Controller-Klasse zu erben. Response
Der Anwendungsnamespace ist auf
(definierbar) anstelle des Modulnamens vereinheitlicht.
Der Klassenname des Controllers hat standardmäßig nicht das Suffix
kann so konfiguriert werden, dass er aktiviert wird- Parameter aktiviert das Controller-Klassensuffix;
app
Die Controller-Betriebsmethode verwendet die Methode - , um Daten anstelle der direkten Ausgabe zurückzugeben.
Controller
use_controller_suffix
Abschaffung des ursprünglichen Pre - und Post-Operation-Methoden;
- Attributdefinition vor der Operation hinzugefügt;
return
unterstützt die Controller-Definition und den Zugriff auf jede Ebene; Controller; -
- Datenbank
beforeActionList
Die Datenbankabfragefunktion von 5.0 wurde verbessert, die ursprünglich über das Modell verwendet werden musste, und kann direkt über die Klasse - aufgerufen werden . Der ursprüngliche Funktionsaufruf
kann geändert werden, um die Funktion - zu verwenden, zum Beispiel:
Version 3.2
1 | M('User')->where(['name'=>'thinkphp'])->find();
|
Nach dem Login kopieren
Version 5.0
1 | db('User')->where('name','thinkphp')->find();
|
Nach dem Login kopieren
Db
Die wichtigsten Verbesserungen sind wie folgt:
M
db
unterstützt Kettenabfrageoperationen;
Datenabfrage unterstützt die Rückgabe von Objekten, Arrays und
Datensatzabfragen unterstützt die Rückgabe von Arrays und
Objekte;
fügt einen Abfragekonstruktor hinzu; unterstützt die Blockabfrage; PDOStatement
fügt SQL-Listening-Ereignisse hinzu; Collection
Modell Die Modelländerung von ist im Grunde ein vollständig objektorientiertes Konzept. einschließlich des Assoziationsmodells. Das Suffix der Modellklasse trägt nicht mehr - und wird direkt durch den Namensraum
unterschieden. Der Aufruf wird in die Funktion - geändert, und die entsprechende Modellklasse muss vorhanden sein erstellt, zum Beispiel:
- Version 3.2
1 | D('User')->where(['name'=>'thinkphp'])->find();
|
Nach dem Login kopieren
- Version 5.0
1 | model('User')->where('name','thinkphp')->find();
|
Nach dem Login kopieren
Zu den wichtigsten Verbesserungen gehören:
Rekonstruktion des Assoziationsmodells; 5.0
Model
Unterstützen Sie das Aggregationsmodell; D
model
Abschaffung des Ansichtsmodells (Änderung der Ansichtsabfragemethode der Datenbank);
Erweiterung des Modells übernimmt
Getter und Modifikatoren hinzugefügt;
Automatisches Schreiben von Zeitstempeln hinzugefügt;
Unterstützung für Array-Zugriff;Unterstützung für JSON-Serialisierung; - Automatische Überprüfung und automatische Vervollständigung
- Die automatische Überprüfung und automatische Vervollständigung der Daten in 5.0 unterscheidet sich erheblich von denen in Version 3.2. Die Daten der 5.0-Verifizierung übernehmen die Validatordefinition und führen eine einheitliche Ausführung durch Überprüfung durch
Trait
Klasse. Die automatische Vervollständigung erfolgt durch die Definition von Modifikatoren im Modell. - Ausnahmen
Nulltoleranz für Fehler, standardmäßig wird eine Ausnahme für jede Fehlerstufe ausgelöst (die Fehlerstufe kann jedoch in der öffentlichen Datei der Anwendung festgelegt werden) und neu gestaltet werden Auf der Ausnahmeseite werden detaillierte Fehlerinformationen angezeigt, um das Debuggen zu erleichtern. Die Seite Debugging und Protokollierung - wurde
erweitert, um die Anzeige von Trace-Informationen in der Browserkonsole zu unterstützen. Der
-Protokolltreiber fügt die Methode
hinzu und verwendet thinkValidate
zur Unterstützung des Remote-Debugging. Die
Konstante
5.0
-Version verwirft die meisten der ursprünglichen Konstantendefinitionen und behält nur die Pfadkonstantendefinitionen des Frameworks bei. Die übrigen Konstanten können die Klasse
oder die Klasse
verwenden Attribute oder Methoden vervollständigen oder die erforderlichen Konstanten selbst neu definieren.
Zu den veralteten Konstanten gehören: 5.0
1 | 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
|
Nach dem Login kopieren
Trace
Funktion
5.0
Das Kernframework basiert nicht auf benutzerdefinierten Funktionen, kapselt aber dennoch einige allgemeine Funktionen in Hilfsfunktionen, Sie Sie können Hilfsfunktionen nach Belieben neu definieren oder hinzufügen. Socket
SocketLog
Dieser Artikel stammt aus der technischen Artikelspalte zum ThinkPHP-Framework:
http://www.php.cn/phpkj/thinkphp/
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen thinkphp5 und 3.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!