thinkphp5 と 3.2 の違い

藏色散人
藏色散人オリジナル
2019-06-29 11:02:403382ブラウズ

<img src="https://img.php.cn/upload/article/000/000/020/5d16d4ae8cd5f951.jpg" alt="thinkphp5 と 3.2 の違い" >

thinkphp5.0 バージョンは、以前のバージョンとは大きく異なります。この記事は、3.2 に精通しているユーザーを対象としています。 バージョン 5.0 の主な違いのいくつかを示します。

URL とルーティング

5.0 URL アクセスは通常の URL モードをサポートしなくなり、ルーティングは通常のルーティング定義をサポートしませんが、すべての変更が行われます。ルール ルーティングの変数ルール (正規定義) と連携する方法:

主な改善点は次のとおりです。

ルーティング変数ルールの追加;

組み合わせ変数の追加support;
リソース ルーティングを追加;
ルーティング グループを追加;
クロージャ定義サポートを追加;
MISS ルーティング定義を追加;
URL ルーティング ルールのアンチ解析をサポート;

リクエストオブジェクトと応答オブジェクト

5.0 リクエスト オブジェクト Request と応答オブジェクト ResponseRequest を追加しました。リクエストとリクエストの統合処理です。リクエスト情報の取得。Response オブジェクトは、クライアントまたはブラウザの応答を出力します。

モジュールとコントローラー

コントローラーの名前空間は調整されており、コントローラー クラスを継承する必要はありません。

  • アプリケーションの名前空間はモジュール名ではなく app (定義可能) に統一されます;
  • コントローラーのクラス名には Controller は含まれません## デフォルトでは #Suffix を有効にするように構成できます use_controller_suffixパラメータによりコントローラ クラスのサフィックスが有効になります;
  • コントローラの操作メソッドは
  • return メソッドを使用してデータを返します直接出力の代わりに;
  • 元の操作前および操作後のメソッドを廃止;
  • beforeActionList 属性を追加して事前操作を定義;
  • あらゆるレベルの操作をサポートコントローラの定義とアクセス;
  • URL アクセスは自動位置決めコントローラをサポート;
データベース

5.0 のデータベース クエリ機能が強化されました。モデルを通じて使用される関数は、

Db クラス呼び出しを通じて直接使用できます。元の MM 関数呼び出しは、db 関数に変更できます。例:

3.2 バージョン

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

5.0 バージョン

db(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();

主な改善点は次のとおりです:

    チェーン クエリ操作のサポート;
  • データ クエリ返されるオブジェクト、配列、および
  • PDOStatement オブジェクトをサポートします;
  • データ セット クエリは、返される配列と
  • Collection オブジェクトをサポートします;
  • クエリ コンストラクターの追加、クエリ構文の変更;
  • クロージャ クエリをサポート;
  • ブロック クエリをサポート;
  • ビュー クエリをサポート;
  • SQL リスニング イベントを追加;
  • #Model

5.0

モデルの変更が最も大きくなります。基本的に、モデルは関連するモデルも含めて完全にオブジェクト指向の概念です。モデル クラスのサフィックスには が付きません。 Model ですが、名前空間によって直接区別されます。元の D 関数呼び出しは model 関数に変更され、対応するモデル クラスを作成する必要があります。例: 3.2 バージョン

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

5.0 バージョン

model(&#39;User&#39;)->where(&#39;name&#39;,&#39;thinkphp&#39;)->find();

主な改善点:

関連付けモデルの再構築;
  • 集計のサポートモデル;
  • ビュー モデルの廃止 (データベースのビュー クエリ メソッドへの変更);
  • モデルの拡張機能は
  • Trait
  • メカニズムを採用しています; ゲッターと修飾子の追加;
  • タイムスタンプの自動書き込みの追加;
  • 型フィールド変換の追加;
  • 配列アクセスのサポート;
  • JSON シリアル化のサポート;
  • 自動検証と自動補完

5.0 データの自動検証と自動補完とバージョン 3.2 はまったく異なります。5.0 のデータ検証では、バリデータ定義と、

think による統合検証が使用されます。 \Validate

クラス。自動補完は、モデル内で修飾子を定義することによって実現されます。 Exception

5.0

エラーに対するゼロトレランス。デフォルトでは、あらゆるレベルのエラーに対して例外がスローされます (ただし、エラー レベルはアプリケーションのパブリック ファイルで設定できます) )、例外ページは、デバッグを容易にする詳細なエラー情報を表示するように再設計されました。 デバッグとログ

5.0

ページTrace は、ブラウザ コンソールでのトレース情報の表示をサポートするように強化されました。

5.0

のログ ドライバーは、Socket メソッドを追加し、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

コア フレームワークはカスタム関数に依存しませんが、いくつかの共通関数ヘルパーをカプセル化します。関数を使用すると、自由にヘルパー関数を再定義したり追加したりできます。 この記事は、ThinkPHP フレームワークの技術記事コラムからのものです:

http://www.php.cn/phpkj/thinkphp/

以上がthinkphp5 と 3.2 の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。