ホームページ >PHPフレームワーク >ThinkPHP >thinkphp5 と 3.2 の違い
<img src="https://img.php.cn/upload/article/000/000/020/5d16d4ae8cd5f951.jpg" alt="thinkphp5 と 3.2 の違い" >
thinkphp5.0
バージョンは、以前のバージョンとは大きく異なります。この記事は、3.2 に精通しているユーザーを対象としています。
バージョン 5.0
の主な違いのいくつかを示します。
5.0
URL アクセスは通常の URL
モードをサポートしなくなり、ルーティングは通常のルーティング定義をサポートしませんが、すべての変更が行われます。ルール ルーティングの変数ルール (正規定義) と連携する方法:
主な改善点は次のとおりです。
ルーティング変数ルールの追加;
組み合わせ変数の追加support;
リソース ルーティングを追加;
ルーティング グループを追加;
クロージャ定義サポートを追加;
MISS ルーティング定義を追加;
URL ルーティング ルールのアンチ解析をサポート;
5.0
リクエスト オブジェクト Request
と応答オブジェクト Response
、Request
を追加しました。リクエストとリクエストの統合処理です。リクエスト情報の取得。Response
オブジェクトは、クライアントまたはブラウザの応答を出力します。
コントローラーの名前空間は調整されており、コントローラー クラスを継承する必要はありません。
app
(定義可能) に統一されます; Controller は含まれません## デフォルトでは #Suffix を有効にするように構成できます
use_controller_suffixパラメータによりコントローラ クラスのサフィックスが有効になります;
メソッドを使用してデータを返します直接出力の代わりに;
属性を追加して事前操作を定義;
Db クラス呼び出しを通じて直接使用できます。元の
MM 関数呼び出しは、
db 関数に変更できます。例:
M('User')->where(['name'=>'thinkphp'])->find();
db('User')->where('name','thinkphp')->find();
オブジェクトをサポートします;
オブジェクトをサポートします;
モデルの変更が最も大きくなります。基本的に、モデルは関連するモデルも含めて完全にオブジェクト指向の概念です。モデル クラスのサフィックスには が付きません。 Model
ですが、名前空間によって直接区別されます。元の D
関数呼び出しは model
関数に変更され、対応するモデル クラスを作成する必要があります。例: 3.2 バージョン
D('User')->where(['name'=>'thinkphp'])->find();
model('User')->where('name','thinkphp')->find();
ゲッターと修飾子の追加; クラス。自動補完は、モデル内で修飾子を定義することによって実現されます。 Exception
エラーに対するゼロトレランス。デフォルトでは、あらゆるレベルのエラーに対して例外がスローされます (ただし、エラー レベルはアプリケーションのパブリック ファイルで設定できます) )、例外ページは、デバッグを容易にする詳細なエラー情報を表示するように再設計されました。 デバッグとログ
ページTrace
は、ブラウザ コンソールでのトレース情報の表示をサポートするように強化されました。
のログ ドライバーは、Socket
メソッドを追加し、SocketLog
を使用してリモート デバッグをサポートします。 定数
このバージョンでは、元の定数定義のほとんどが放棄され、フレームワークのパス定数定義のみが保持され、残りの定数は使用できます 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 フレームワークの技術記事コラムからのものです:
以上がthinkphp5 と 3.2 の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。