Heim >PHP-Framework >Denken Sie an PHP >Der Unterschied zwischen thinkphp5 und 3.2

Der Unterschied zwischen thinkphp5 und 3.2

藏色散人
藏色散人Original
2019-06-29 11:02:403381Durchsuche

Die

<img src="https://img.php.cn/upload/article/000/000/020/5d16d4ae8cd5f951.jpg" 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.0RequestModule und ControllerResponseRequestDer 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. Controlleruse_controller_suffixAbschaffung 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

M(&#39;User&#39;)->where([&#39;name&#39;=>&#39;thinkphp&#39;])->find();

Version 5.0

db(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();
DbDie wichtigsten Verbesserungen sind wie folgt: Mdb

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;
  • CollectionModell
  • 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
  • D(&#39;User&#39;)->where([&#39;name&#39;=>&#39;thinkphp&#39;])->find();
  • Version 5.0
  • model(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();
Zu den wichtigsten Verbesserungen gehören:

Rekonstruktion des Assoziationsmodells; 5.0 ModelUnterstützen Sie das Aggregationsmodell; DmodelAbschaffung 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

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
TraceFunktion

5.0Das 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. SocketSocketLogDieser 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!

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