2019 年 10 月 24 日リリース
構築に 1 年以上かかった ThinkPHP 6.0 の正式バージョンが正式にリリースされました。このバージョンは、効率化の 2 つの原則に基づいています。 5.1 に基づいて、基礎となるアーキテクチャがさらに最適化および改善され、さらに標準化されました。
いくつかの新機能の導入により、ThinkPHP6.0 オペレーティング環境では PHP7.1 (PHP7.3 を推奨) が必要となり、5.1 へのシームレスなアップグレードはサポートされません (公式アップグレード ガイダンスが提供されます)。
推奨ビデオ チュートリアル: 「ThinkPHP6.0 クイック スタート」
主な機能:
● PHP7 の強力な型指定を使用する (厳密モード)
#● より多くの PSR 仕様をサポート##● マルチアプリケーションのサポート
##● ORM コンポーネントの独立性##● 改善されたミドルウェア メカニズム
● コアアーキテクチャのサービス化
#● 新たなイベントシステム##● コンテナ機能の強化
##● テンプレートエンジンコンポーネントの独立性##● 内部機能のミドルウェア化
● SESSION メカニズムの改善
#● キャッシュとログのマルチチャネルサポート # ファイルシステムコンポーネントの導入## ● Swoole とコルーチンのサポートの改善
● より IDE に優しい
● 多数の使用法を統合して合理化
##強力な型指定と厳密モード
主流のフレームワークでは、ThinkPHP6 .0 は PHP7 の strict モードを初めて採用しました。すべてのコア ファイルでは厳密モードの型制約がオンになっているため、変数の型が一致しない場合は例外がスローされます。これは、コード内の変数の型を標準化し、潜在的な問題を事前に検出するのに役立ちます。マルチアプリケーション モード
フレームワークの新しいバージョンは、マルチアプリケーション モードのサポートを提供します。デフォルトのインストールは単一のアプリケーションです。複数のアプリケーションをインストールするだけで済みます。 -アプリケーション モード拡張により、作業が容易になります。依存コンポーネントを繰り返しインストールすることなく、複数のアプリケーションを展開できます。各アプリケーションは、独立したポータル アクセスとドメイン名のバインドをサポートします。1 つのポータル ファイルを使用して、複数のアプリケーションの自動展開を実現することもできます。また、自動マルチアプリケーション モードはインテリジェントな識別をサポートしており、存在しないアプリケーションにアクセスすると、照合のためにシングル アプリケーション モードに自動的に切り替わります。アプリケーション マッピングとアクセス禁止メカニズムもサポートします。マルチアプリケーション モードの設計により、開発をよりモジュール化できます。各アプリケーションの構成、ルーティング、ビューをアプリケーション ディレクトリに含めることができるため、アプリケーションをモジュール化し、コンポーザーを導入することもより便利になります。アプリケーション。
コンテナとサービス
コンテナの新しいバージョンは PSR-11 仕様をサポートしており、コンテナ クラスの主な機能は次のとおりです。クラス、オブジェクトのバインディング インスタンス、コンテナへのインターフェイス
# クラスのインスタンスを作成します (存在する場合は直接取得します)## コンテナ オブジェクト バインディング エイリアス
##● コンテナのサポートオブジェクト (インスタンス化) コールバック● コンテナ オブジェクト インスタンスを取得します##● コンテナ内のオブジェクト インスタンスを削除します##● 依存関係の注入とファサード実装のサポートを提供します
● コンテナ オブジェクト インスタンス (またはクロージャ) のメソッドを呼び出す#● コンテナ オブジェクトに ArrayAccess サポートを提供する
#イベント システム
新しいバージョンイベント システムのアップグレード バージョンであるイベント システムは、イベント自体をクラスにすることができ、イベント サブスクライバーをより適切にサポートできるという点で、ビヘイビアー システムよりも強力です。イベントのスマート サブスクリプションをサポートし、リフレクション メカニズムを使用して、現在のサブスクライバーがサブスクライブしたいイベントを識別します。 ミドルウェアと比較したイベントの利点は、イベントがミドルウェアよりも正確に配置され (または粒度が細かく)、一部のビジネス シナリオの拡張に適していることです。たとえば、通常、ユーザーは登録やログイン後に一連の操作を実行する必要があります。イベント システムを使用すると、元のコードを侵害することなくログイン操作の拡張を完了できるため、システムの結合が軽減されるだけでなく、バグの可能性も減ります。ミドルウェアのサポートは万全です
ミドルウェアはグローバルミドルウェア、アプリケーションミドルウェア、ルーティングミドルウェア、コントローラミドルウェアに分かれており、これら4つのミドルウェアグループは完全に独立して実行されますが、ミドルウェアは独立して実行されます。同じグループが繰り返し実行されることはありません。ミドルウェア メソッドは、依存関係の注入とリクエスト完了のためのコールバック メカニズムを実行します。 多くのコア機能は、ミドルウェア メカニズムを使用して実行されるマルチアプリケーション モードを含め、ミドルウェアに基づいて完成されます。ルーティングとリクエスト
ルーティングの新しいバージョンでは、多くの不必要な機能が合理化され、ルーティング定義はより標準化され、セマンティックになり、ルーティング定義ファイルはアプリケーションへの組み込みをサポートします。モジュール開発が容易になります。ルーティング アノテーション関数は think-annotation ライブラリから独立しており、その使用はより標準化されており、IDE プロンプトをサポートしています。
リクエスト オブジェクトの新しいバージョンは拡張が容易です。システムはデフォルトのインストール後に app\Request クラスを提供します。アプリケーションでリクエスト オブジェクトを直接カスタマイズし、必要な属性とメソッドを追加できます。ただし、依存関係の注入や think\Request へのファサード呼び出しには影響しません。システムサービス
コアフレームワークはサービス指向設計を採用しているため、必要なサービスを拡張機能やアプリケーションに登録できます。システム サービスのオブジェクトをコンテナに登録するか、特定のオブジェクトに対して関連する依存関係の注入を実行します。システム サービスの実行優先度により、関連するコンポーネントが実行時に関連する依存関係の挿入を確実に完了することができます。通常、サービス クラスには、さまざまな段階で実行するための登録メソッドとブート メソッドが含まれています。
ORM コンポーネント化
組み込みの ORM 機能は think-orm コンポーネントとして完全に独立しており、単独で使用できます。ThinkPHP6.0 はこのコンポーネントに依存して、デフォルトでインストールされますのでそのままご利用ください 変更はありませんが、クエリ機能が強化されました。
テンプレート エンジンのコンポーネント化
コアには組み込みのテンプレート エンジンがなくなり、PHP テンプレートのサポートのみが提供されます。公式のテンプレート エンジンは、think- として独立しました。 template テンプレート エンジン、およびデフォルトではインストールに依存します。サードパーティのテンプレート エンジンをより便利に使用できます。
ログ システム
ログは複数のチャネルをサポートし、主に次のようなコマンド ラインと WEB ログ形式を統合します。
#● ログは複数のチャネルを追加します。 -channel サポート、複数のチャネルの同時書き込みまたは切り替えが可能
#● WEB と CLI のログ形式を統一し、ログ形式をサポート#● JSON ログ形式の改善
● ログ書き込みイベントのサポート
##セッション メカニズムの改善
バージョン 6.0 のセッション メカニズムは完全に書き直され、組み込みのセッション メカニズムはPHP は使用されなくなり、新しい実装が実装されました。セッション メカニズムは、Swoole/Workerman およびその他の環境をより適切にサポートできます。
したがって、PHP の組み込み session_*** シリーズ関数はサポートされなくなり、$_SESSION を使用してセッション データを読み取ることもサポートされなくなりました。フレームワークによって提供される Session クラスまたはファサードを介して操作する必要があります。また、Request クラスもカプセル化され、セッション データの読み取りが行われます。 Session は、クロスアプリケーション読み取りおよびカスタム シリアル化メカニズムをサポートしています。デフォルトでは、ファイル タイプはセッション データの記録に使用されます。共有キャッシュ メカニズムにより、サポートされている任意のキャッシュ タイプを使用してセッション データを記録することもできます。ファイルシステム コンポーネントの紹介
新しいバージョンでは、ファイル システムのサポートを強化するためにファイルシステム クラス ライブラリが追加され、Alibaba Cloud や Alibaba Cloud などのさまざまなクラウド ストレージを簡単にサポートできます。七牛雲。
Swoole 拡張機能の改善
Swoole 拡張機能は、HTTP サービスとソケット サービスの両方をサポートし、データベースとキャッシュ接続プール機能、および RPC 機能をサポートします。
デバッグ ツールの更新
元の組み込みページ Trace デバッグ ツールは拡張モードに変更され、代わりに think-trace 拡張機能がインストールされました。アプリケーションは、composer を通じてインストールされます。topthink/think-trace 拡張機能はデフォルトでインストールされます。
基本的な使用法は以前と同じですが、追加の構成は必要ありません。デフォルトでは、HTML モードで表示されます。引き続きブラウザーのコンソール表示をサポートし、デバッグ モードでのみ有効です。 同時に、debugbar に基づくデバッグ拡張機能 think-debugbar が追加されました。これは、使用する前に別途インストールする必要があります。composer require topthink/think-debugbar
多数の使用法を統合および合理化
新しいバージョンでは、開発プロセス中に一貫性のない仕様による混乱を避けるために、多くの使用法が合理化および統合されています。
開発マニュアル
詳細については、ThinkPHP6.0 の「TP6 完全開発マニュアル
」をご覧ください。 ThinkPHP は当初の意図と粘り強さで常に改善と更新に力を入れており、過去 13 年間に複数のメジャー バージョンを継続的にリリースしてきました。実際、これまでの ThinkPHP のすべてのメジャー バージョンでは、18 か月以上のサポートとメンテナンスが提供されてきました。ThinkPHP のメジャー バージョンの現在のメンテナンス プランの発表は次のとおりです:ThinkPHP6.0 GitHub アドレス:
https://github.com/top-think/think?tdsourcetag=s_pctim_aiomsg
https://github .com/top-think/framework?tdsourcetag=s_pctim_aiomsg