この記事では主に ThinkPHP5.0 バージョンと ThinkPHP3.2 バージョンの違いを紹介します。必要な方は
5.0 バージョンとそれ以前のバージョンを参照してください。この記事では、バージョン 3.2 に精通しているユーザー向けに、5.0 の主な違いをいくつか説明します。
URL とルーティング
5.0 URL アクセスは通常の URL モードをサポートしなくなり、ルーティングは通常のルーティング定義をサポートしなくなりましたが、すべての方法が変更されました。ルール ルーティングの変数ルール (通常の定義) と一致するようにする:
主な改善点は次のとおりです:
ルーティング変数ルールを追加します;
組み合わせ変数のサポートを追加;
ルーティング グループを追加;
MISS ルーティング定義のサポートを追加;
Request オブジェクトとレスポンス オブジェクト
5.0 では、リクエストを一律に処理してリクエスト情報を取得するリクエスト オブジェクト Request とレスポンス オブジェクト Response を追加します。オブジェクトは顧客の出力を担当します。クライアントまたはブラウザが応答します。
モジュールとコントローラー
コントローラーの名前空間は調整されており、コントローラー クラスを継承する必要はありません。 アプリケーションの名前空間は、モジュール名ではなく app (定義可能) として統合されます。
コントローラーのクラス名には、デフォルトではコントローラー接尾辞がありません。use_controller_suffix パラメーターを構成してコントローラー クラスを有効にすることができます。Control コントローラー操作メソッドは、直接出力の代わりに return メソッドを使用してデータを返します。
beforeActionList 属性を追加して、前操作を定義します。任意のレベルのコントローラー定義とアクセスをサポートします。
URL アクセスはコントローラーの自動配置をサポートします。
データベース
5.0のデータベース クエリ機能が強化され、本来はモデルを通じて使用する必要があったチェーンを、Db クラスを通じて直接呼び出すことができます。たとえば、元の M 関数呼び出しを db 関数に変更できます。 3.2 バージョン
##M(' ユーザー')->where(['name'=>'thinkphp'])->find( );##5.0 バージョン
db('ユーザー')->where('名前','thinkphp')- >find();
主な改善点は次のとおりです。
連鎖クエリ操作のサポート
データ クエリはオブジェクトを返すことをサポートします。 、配列および PDOStatement オブジェクト。データ セット クエリは、配列および Collection オブジェクトを返すことをサポートします。 クエリ構文の変更をサポートします。 は、ビュー クエリをサポートします。 ; SQL リスニング イベントを追加します。
##Model
5.0 のモデルの変更は、基本的には完全にオブジェクトです。関連モデルを含む - 指向の概念。モデル クラスのサフィックスは Model を持たなくなり、元の D 関数呼び出しがモデル関数に変更され、対応するモデル クラスを作成する必要があります。例:
3.2 バージョン
D('ユーザー') ->where(['name'=>'thinkphp'] )->find();
5.0 バージョンmodel('ユーザー')->where('name ','thinkphp')->find();
##主な改善点は次のとおりです。
関連付けモデルを再構築します。集約モデル; ビュー モデルの廃止 (データベースのビュー クエリ メソッドへの変更); モデルの拡張では、アクセス修飾子と修飾子を追加します。タイムスタンプの数;型フィールド変換の追加;
配列アクセスのサポート;JSON シリアル化のサポート;
自動検証と自動補完
##5.0 のデータの自動検証と自動補完は、バージョン 3.2 とは大きく異なります。5.0 のデータ検証は、バリデーター定義を採用し、 think\Validate クラスを通じて統合検証を実行します。自動補完は、モデル内で修飾子を定義することによって実現されます。
Exceptions
5.0 はエラーに対する許容度がゼロであり、デフォルトであらゆるレベルのエラーに対して例外をスローします (ただし、アプリケーションのパブリックで使用できます)ファイルにエラー レベルを設定します)。例外ページは、デバッグを容易にする詳細なエラー情報を表示するように再設計されました。
デバッグとロギング
5.0 ページ トレースの機能強化により、ブラウザ コンソールでのトレース情報の表示がサポートされます。 5.0 のログ ドライバーはソケット モードを追加し、SocketLog を使用してリモート デバッグをサポートします。定数
5.0 バージョンでは、元の定数定義のほとんどが放棄され、フレームワークのパス定数定義と残りの定数のみが保持されました。 App クラスまたは Request クラスの関連する属性またはメソッドを使用して完了するか、必要な定数を自分で再定義します。非推奨の定数は次のとおりです:
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
##Function
コア フレームワークの 5.0 バージョンはカスタム関数に依存しませんが、一部の一般的な関数はヘルパー関数にカプセル化されています。ヘルパー関数を自由に再定義したり追加したりできます。 。 上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。#
以上がThinkPHP5.0版とThinkPHP3.2版の違いについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。