ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP5.0とThinkPHP3.2のバージョンの違いを詳しく解説

ThinkPHP5.0とThinkPHP3.2のバージョンの違いを詳しく解説

小云云
小云云オリジナル
2018-02-12 14:25:421812ブラウズ

5.0 バージョンは以前のバージョンとは大きく異なります。この記事では、バージョン 3.2 に慣れているユーザー向けに 5.0 の主な違いをいくつか説明します。この記事では主に ThinkPHP5.0 バージョンと ThinkPHP3.2 バージョンの違いについて説明します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

URL とルーティング

5.0 URL アクセスは通常の URL モードをサポートしなくなり、ルーティングは通常のルート定義をサポートしなくなり、代わりに、すべて可変ルール (通常の定義) によるルール ルーティングに変更されました。

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

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

リソース ルーティングを追加;
MISS ルート定義を追加;

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

5.0 では、要求オブジェクト Request と応答オブジェクト Response が追加され、Request は要求を均一に処理し、要求情報を取得します。Response オブジェクトは、クライアントまたはブラウザーの応答を出力します。

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

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

アプリケーションの名前空間は、モジュール名ではなく app (定義可能) として統合されます。

コントローラーのクラス名には、デフォルトではコントローラー サフィックスがありません。

コントローラー クラスのサフィックスを有効にするために use_controller_suffix パラメーターを設定できます。メソッドは、直接出力の代わりに return メソッドを使用してデータを返します。

事前操作を定義するために beforeActionList 属性を追加します。

URL アクセスをサポートします。コントローラーの自動配置;


データベース

5.0 元々はモデルを通じて使用する必要があったチェーン クエリを、元​​の M 関数呼び出しで置き換えることができるようになりました。 db 関数、例:

3.2 バージョン

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

5.0 バージョン

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

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

連鎖クエリ操作をサポートします。 PDOStatement オブジェクト;

データ セット クエリは配列と Collection オブジェクトを返すことをサポート;

クロージャ クエリをサポート;

SQL リスニング イベントを追加; 5.0 のモデルの変更が最も大きく、基本的にモデルはアソシエーション モデルを含む完全なオブジェクト指向の概念になり、モデル クラスのサフィックスは Model を持たなくなり、元の D 関数呼び出しによって直接区別されます。モデル関数に追加し、対応するモデル クラスを作成する必要があります。例:

3.2 バージョン

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

5.0 バージョン

model('User')->where('name','thinkphp')-> ;find();

主な改善点:

関連付けモデルを再構築する

集計モデルをサポートします。

ビュー モデルを廃止します (データベースのビュー クエリ メソッドに変更されます)。

ゲッターとモディファイアを追加します。

型フィールド変換を追加します。 ;

配列アクセスのサポート;

自動検証と自動完了

5.0 のデータ自動検証と自動完了は、3.2 バージョンとは異なります。 大規模な 5.0 データ検証は、バリデーター定義を使用し、thinkValidate を通じて統合検証を実行します。クラス。自動補完は、モデル内でモディファイアを定義することによって実現されます。

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 バージョン コア フレームワークはカスタム関数に依存しませんが、いくつかの一般的な関数をヘルパー関数にカプセル化します。ヘルパー関数を自由に再定義または追加できます。

関連する推奨事項:

ThinkPHP5.0 の画像アップロードプラグインの実装例の共有

thinkPHP5.0 フレームワークに関する推奨記事 10 件

thinkPHP5.0 フレームワークの単純な構成スコープのコード例

以上がThinkPHP5.0とThinkPHP3.2のバージョンの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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