Heim  >  Artikel  >  Backend-Entwicklung  >  Stellen Sie kurz die spezifischen Unterschiede zwischen ThinkPHP5.0 und ThinkPHP3.2 vor

Stellen Sie kurz die spezifischen Unterschiede zwischen ThinkPHP5.0 und ThinkPHP3.2 vor

黄舟
黄舟Original
2017-06-18 09:19:591487Durchsuche

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 Controller

Der 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:

Version 3.2

M('User')->where(['name'=>'thinkphp '])->find();

Version 5.0 db('User')->where( 'name','thinkphp')->find();


Die wichtigsten Verbesserungen sind wie folgt:

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.

Unterstützen Sie das Ansichtsmodell (Änderung der Ansichtsabfragemethode der Datenbank);

Getter hinzugefügt und Modifikatoren;Automatisches Schreiben von Zeitstempeln hinzugefügt;Typfeldkonvertierung hinzugefügt;Array-Zugriffsunterstützung;

JSON-Serialisierung

Unterstü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!

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