ThinkPHP5.0 アップグレード 5.1 の全記録
thinkphp5 アップグレード手順
そしてアプリに分割.php、cache.php およびその他の独立した設定ファイル、システムのデフォルト設定ファイルのリストは次のとおりです。
プロジェクトは tp5.1 で開発されたため、オンラインで良いモール システムを見つけましたが、それは開発されました5.0 では、5 モールが 5.1 にアップグレードされました。そこには多くの落とし穴があり、将来の世代のためにここに記録します。
1. 1 つ目はファサードです。
5.0 にはこれがありません。 5.1 新しいファサード。使用中の対応するものと一致する必要があります。対応表は次のとおりです:
2. 設定ファイルの調整
元の設定ファイル config.php は、アプリケーション ディレクトリと同じレベルの config ディレクトリは、app.php や cache.php などの独立した設定ファイルに分割されます。システムのデフォルトの設定ファイル リストは次のとおりです:
代わりに、つまり、元のすべての第 1 レベルの構成は、1 つの構成ファイルとして独立して構成されます。
元のアプリケーションの追加ディレクトリの下にある構成ファイルは、config ディレクトリに直接移動されます。
元のモジュール設定ファイル(エクストラディレクトリ配下も含む)をモジュール直下のconfigディレクトリに直接移動し、上記のアプリケーション設定ファイルを参照して調整します。
5.1 構成ファイルはすべて、第 2 レベルの構成メソッドを使用します。第 1 レベルの構成名のないすべてのパラメーターは、アプリの第 2 レベルの構成として使用されます。例:
config('app_debug');
定数の調整
5.1 すべてのフレームワークの組み込み定数がキャンセルされました (アプリケーション コードのカスタム定数には影響しません)。これらを取得するには、thinkacadeApp クラスの組み込みメソッドと thinkacadeEnv クラスの取得を使用してください (以下は 5.0 と 5.1 の間の定数比較表です):
#4. モデルの調整モデルのデータ セット クエリは、配列ではなく常にデータ セット オブジェクトを返します; モデルのデータ テーブルの主キーが id でない場合、モデルの pk 属性は次のとおりである必要があります。 set;
ソフト削除特性の導入は、thinkmodelconcernSoftDelete を使用するように変更されました;
グローバル クエリ スコープ ベース メソッドにソフト削除条件を追加する必要はありません;
集計モデル関数は廃止され、より柔軟な自動書き込み機能を備えた関連付けられたモデルに置き換えられました。
モデルのクエリ スコープは、スコープ メソッドの呼び出し後に呼び出すだけで済みます。クエリを使用できます。データベースの方法;
モデルのデータ検証機能をキャンセルしてください。代わりにコントローラ検証またはルーティング検証を使用してください;
このモデル調整は慎重に検討する必要があります。たとえば、2 番目のポイントの主キーです。モールシステムでは多数のアソシエーションモデルを使用しており、5.0時代はデータテーブルの主キー名が何であっても自動で取得できましたが、5.1ではデフォルトがidとなっており、$を使用する必要があります。主キー名を指定するには pk=user_id を指定します。それ以外の場合は、「「モデル属性が存在しません」というエラーに 2 時間悩まされました。
5. コントローラーの調整_initializeメソッドを初期化に変更しました(1時間騙されました、視力の悪い人は騙されます)6. 最後のステップを忘れないでください: キャッシュ ディレクトリ内のすべてのファイルをクリアします
7. その他の問題については、TP5.1 ドキュメントを詳細に読んで必ず読むことをお勧めします。単語。
推奨学習:
thinkphp5以上がthinkphp5 のアップグレード手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。