Heim  >  Artikel  >  ThinkPHP6.0 wird heute offiziell veröffentlicht

ThinkPHP6.0 wird heute offiziell veröffentlicht

藏色散人
藏色散人nach vorne
2019-10-24 10:41:524807Durchsuche

Veröffentlicht am 24. Oktober 2019

Die offizielle Version von ThinkPHP 6.0, deren Erstellung mehr als ein Jahr dauerte, wurde offiziell veröffentlicht. Diese Version basiert auf den beiden Prinzipien der Optimierung Kern und einheitliche Nutzung Auf Basis von 5.1 wurde die zugrunde liegende Architektur weiter optimiert und verbessert sowie stärker standardisiert.

Aufgrund der Einführung einiger neuer Funktionen erfordert die Betriebsumgebung ThinkPHP6.0 PHP7.1+ (PHP7.3+ wird empfohlen) und unterstützt keine nahtlosen Upgrades auf 5.1 (offizielle Upgrade-Anleitungen werden bereitgestellt).

Empfohlenes Video-Tutorial: „ThinkPHP6.0 Quick Start

Hauptfunktionen:

● Verwenden Sie PHP7 Strong Typing ( Strikter Modus)

● Unterstützung weiterer PSR-Spezifikationen

● Unterstützung mehrerer Anwendungen

● Unabhängigkeit von ORM-Komponenten

● Verbesserter Middleware-Mechanismus

● Servitisierung der Kernarchitektur

● Brandneues Ereignissystem

● Verbesserung der Containerfunktion

● Unabhängig von Template-Engine-Komponenten

● Interne Funktionen Middleware

● Verbesserung des SESSION-Mechanismus

● Cache- und Protokollunterstützung für mehrere Kanäle

● Einführung der Dateisystemkomponente

● Verbesserte Unterstützung für Swoole und Coroutine

● Freundlicher für IDEs

● Vereinheitlichung und Optimierung einer großen Anzahl von Verwendungen

Starke Typisierung und strikter Modus

In Mainstream-Frameworks, ThinkPHP6 .0 ist der erste, der den strikten PHP7-Modus übernimmt. Für alle Kerndateien sind strenge Modustypbeschränkungen aktiviert. Wenn also ein Variablentyp nicht übereinstimmt, wird eine Ausnahme ausgelöst. Dies ist hilfreich, um die Variablentypen im Code zu standardisieren und potenzielle Probleme im Voraus zu erkennen.

Multianwendungsmodus

Die neue Version des Frameworks bietet Unterstützung für den Multianwendungsmodus. Die Standardinstallation ist eine Einzelanwendung. Sie müssen nur eine Multianwendung installieren. Erweiterung des Anwendungsmodus, um die Bereitstellung mehrerer Anwendungen zu vereinfachen, ohne dass abhängige Komponenten wiederholt installiert werden müssen. Sie können auch eine Portaldatei verwenden, um die automatische Bereitstellung mehrerer Anwendungen zu implementieren. Und der automatische Mehrfachanwendungsmodus unterstützt die intelligente Identifizierung und wechselt automatisch in den Einzelanwendungsmodus für den Abgleich, wenn auf nicht vorhandene Anwendungen zugegriffen wird. Es unterstützt auch Anwendungszuordnungs- und Zugriffsverbotsmechanismen.

Das Design des Multianwendungsmodus kann die Entwicklung modularer machen, da die Konfiguration, das Routing und die Ansichten jeder Anwendung in das Anwendungsverzeichnis aufgenommen werden können, sodass es bequemer ist, Anwendungen zu modularisieren und sogar Composer einzuführen Anwendungen.

Container und Dienste

Die neue Version von Containern unterstützt die PSR-11-Spezifikation. Zu den Funktionsmerkmalen der Containerklasse gehören hauptsächlich:

● Binden von Klassen und Objekten, Instanzen und Schnittstellen an Container

● Erstellen Sie Instanzen von Klassen (holen Sie sie direkt ab, wenn sie vorhanden sind)

● Bindungsaliase für Containerobjekte

● Unterstützen Sie Containerobjekte ( Instanziierung) Rückrufe

● Holen Sie sich die Containerobjektinstanz

● Löschen Sie die Objektinstanz im Container

● Bereitstellung von Unterstützung für Abhängigkeitsinjektion und Fassadenimplementierung

● Rufen Sie die Methode der Containerobjektinstanz (oder Schließung) auf

● Bietet ArrayAccess-Unterstützung für Containerobjekte

Ereignissystem

Die neue Version des Das Ereignissystem kann als Verhaltenssystem der Version 5.1 angesehen werden. In der aktualisierten Version ist das Ereignissystem leistungsfähiger als das Verhaltenssystem, da das Ereignis selbst eine Klasse sein kann und Ereignisabonnenten besser unterstützen kann. Unterstützt intelligente Ereignisabonnements und verwendet den Reflexionsmechanismus, um die Ereignisse zu identifizieren, die der aktuelle Abonnent abonnieren möchte.

Der Vorteil von Ereignissen im Vergleich zu Middleware besteht darin, dass Ereignisse genauer positioniert (oder detaillierter) sind als Middleware und sich besser für die Erweiterung einiger Geschäftsszenarien eignen. Beispielsweise stoßen wir normalerweise auf Benutzer, die nach der Registrierung oder Anmeldung eine Reihe von Vorgängen ausführen müssen. Durch das Ereignissystem können wir die Erweiterung des Anmeldevorgangs abschließen, ohne in den Originalcode einzudringen, was nicht nur die Kopplung des Systems verringert, sondern auch verringert auch die Möglichkeit von BUG.

Middleware-Unterstützung wurde verbessert

Middleware ist in globale Middleware, Anwendungs-Middleware, Routing-Middleware und Controller-Middleware unterteilt. Diese vier Middleware sind vollständig gruppiert. Führen Sie sie unabhängig voneinander aus, aber die Middleware ist integriert Dieselbe Gruppe wird nicht wiederholt ausgeführt. Die Middleware-Methode führt eine Abhängigkeitsinjektion und einen Rückrufmechanismus zur Anforderungsvervollständigung durch.

Viele Kernfunktionen werden basierend auf Middleware ausgeführt, einschließlich des Multianwendungsmodus, der ebenfalls mithilfe des Middleware-Mechanismus ausgeführt wird.

Routing und Anfragen

Die neue Version des Routings optimiert viele unnötige Funktionen, die Routing-Definition ist standardisierter und semantischer und die Routing-Definitionsdatei unterstützt die Einbindung in die Anwendung Verzeichnis. Erleichtert die modulare Entwicklung. Die Routing-Annotationsfunktion ist unabhängig von der Think-Annotation-Bibliothek, ihre Verwendung ist standardisierter und unterstützt IDE-Eingabeaufforderungen.

Die neue Version des Anforderungsobjekts ist einfacher zu erweitern. Das System stellt nach der Standardinstallation eine appRequest-Klasse bereit. Sie können das Anforderungsobjekt direkt in der Anwendung anpassen und erforderliche Attribute und Methoden hinzufügen. Dies hat jedoch keine Auswirkungen auf die Abhängigkeitsinjektion und Fassadenaufrufe von thinkRequest.

Systemdienste

Da das Kernframework ein serviceorientiertes Design annimmt, können Sie die erforderlichen Dienste in Ihrer Erweiterung oder Anwendung registrieren. Registrieren Sie ein Objekt im Systemdienst für den Container oder führen Sie eine entsprechende Abhängigkeitsinjektion für bestimmte Objekte durch. Aufgrund der Ausführungspriorität von Systemdiensten kann sichergestellt werden, dass relevante Komponenten bei der Ausführung die entsprechende Abhängigkeitsinjektion abgeschlossen haben. Eine Serviceklasse umfasst normalerweise Registrierungs- und Startmethoden zur Ausführung in verschiedenen Phasen.

ORM-Komponentisierung

Die integrierte ORM-Funktion ist als Think-Orm-Komponente völlig unabhängig und kann unabhängig von dieser Komponente verwendet werden Standardmäßig installiert sein, daher die Verwendung beibehalten. Die Abfragefunktion bleibt unverändert, wurde jedoch erweitert.

Komponentisierung der Template-Engine

Der Kern verfügt nicht mehr über eine integrierte Template-Engine und bietet nur noch PHP-Template-Unterstützung. Die offizielle Template-Engine ist seit jeher unabhängig. Vorlage-Vorlagen-Engine und standardmäßig abhängig von der Installation. Sie können Template-Engines von Drittanbietern bequemer verwenden.

Protokollsystem

Das Protokoll unterstützt mehrere Kanäle und vereinheitlicht die Befehlszeilen- und WEB-Protokollformate, hauptsächlich einschließlich:

● Das Protokoll fügt mehrere hinzu -Kanalunterstützung, mehrere Kanäle können gleichzeitig geschrieben oder umgeschaltet werden

● Die Protokollierungsformate von WEB und CLI sind vereinheitlicht und unterstützen die Protokollformatierung

● Verbesserungen am JSON-Protokollformat

● Unterstützt Protokollschreibereignisse

Verbesserung des Sitzungsmechanismus

Der Sitzungsmechanismus von Version 6.0 wurde komplett neu geschrieben und verwendet nicht mehr den in PHP integrierten Sitzungsmechanismus, ein neuer Die Implementierung ist implementiert. Der Sitzungsmechanismus kann Swoole/Workerman und andere Umgebungen besser unterstützen.

Die in PHP integrierte Funktionsreihe session_*** wird nicht mehr unterstützt, und die Verwendung von $_SESSION zum Lesen von Sitzungsdaten wird nicht mehr unterstützt. Sie müssen über die vom Framework bereitgestellte Session-Klasse oder -Fassade arbeiten. und die Request-Klasse ist ebenfalls gekapselt. Lesen von Sitzungsdaten.

Session unterstützt anwendungsübergreifende Lese- und benutzerdefinierte Serialisierungsmechanismen. Standardmäßig wird der Dateityp zum Aufzeichnen von Sitzungsdaten verwendet. Aufgrund des gemeinsamen Cache-Mechanismus können Sie auch jeden unterstützten Cache-Typ zum Aufzeichnen von Sitzungsdaten verwenden.

Einführung in die Dateisystemkomponente

Die neue Version fügt die Dateisystem-Klassenbibliothek hinzu, um die Unterstützung für das Dateisystem zu stärken, und kann verschiedene Cloud-Speicher, einschließlich Alibaba Cloud und, problemlos unterstützen Sieben Niu Yun.

Verbesserungen der Swoole-Erweiterung

Swoole-Erweiterung unterstützt sowohl HTTP- als auch Socket-Dienste, unterstützt Datenbank- und Cache-Verbindungspoolfunktionen sowie RPC-Funktionen.

Update des Debugging-Tools

Das ursprünglich integrierte Seiten-Trace-Debugging-Tool wurde in eine Erweiterung geändert und die Think-Trace-Erweiterung wurde installiert wird über Composer installiert. Die Erweiterung topthink/think-trace wird standardmäßig installiert.

Die grundlegende Verwendung bleibt dieselbe wie zuvor, es ist jedoch keine zusätzliche Konfiguration erforderlich. Sie wird standardmäßig in HTML angezeigt, unterstützt jedoch weiterhin die Browserkonsolenanzeige und ist nur im Debugging-Modus gültig.

Gleichzeitig wird eine auf debugbar basierende Debugging-Erweiterung think-debugbar hinzugefügt, die vor der Verwendung separat installiert werden muss.

composer require topthink/think-debugbar

Eine große Anzahl von Verwendungen vereinheitlichen und optimieren

Die neue Version hat viele Verwendungen rationalisiert und vereinheitlicht, um Verwirrung durch inkonsistente Spezifikationen während des Entwicklungsprozesses zu vermeiden.

Entwicklungshandbuch

Weitere Informationen finden Sie im „TP6 Complete Development Manual

Holding von ThinkPHP6.0 a Mit ursprünglicher Absicht und Beharrlichkeit hat ThinkPHP stets auf Verbesserungen und Aktualisierungen bestanden und in den letzten 13 Jahren kontinuierlich mehrere Hauptversionen veröffentlicht. Tatsächlich bieten alle Hauptversionen von ThinkPHP seit mehr als 18 Monaten Support und Wartung. Die aktuelle Ankündigung des Wartungsplans für Hauptversionen von ThinkPHP lautet wie folgt:

ThinkPHP6.0 wird heute offiziell veröffentlicht

ThinkPHP6. 0 GitHub-Adresse:

https://github.com/top-think/think?tdsourcetag=s_pctim_aiomsg

https://github .com/top-think/framework?tdsourcetag=s_pctim_aiomsg

Stellungnahme:
Dieser Artikel ist reproduziert unter:thinkphp. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen