はじめに
ThinkPHP 3.2 は ThinkPHP 3.1 をベースにしており、多くの変更が加えられていますが、このバージョンは 3.2 ではなく ThinkPHP 4.0 として設定する必要があると思います。 ThinkPHP 3.1 を使用している場合は、むやみに移行したりアップグレードしたりしないでください。これは、単にファイルを上書きして安全なままにしておくという問題ではありません。
1.PHPのバージョン
ThinkPHP 3.2 には PHP 5.3 以降が必要ですが、ThinkPHP 3.1 には PHP 5.2 のみが必要です
2.プログラムフォルダーの変更
ThinkPHP 3.2 はプログラム フォルダーとして Application を使用しますが、ThinkPHP 3.1 はプログラム フォルダーとして app を使用します。
3. さまざまなグループ設定のアップグレード
今後の開発ではグループ化を行わないことをお勧めします。そうしないと、グループ化に対処する必要がたくさんあります。グループ化されていない友達がいる場合は、公式を参照してください。答えを見つけるにはドキュメントを参照してください。
ThinkPHP 3.2 はホーム ディレクトリを設定し、多くのファイルがホーム ディレクトリに移行されます。
コードをコピーします コードは次のとおりです:
App/Common/common.php => Application/Home/Common/function.php
App/Common/extend.php => Application/Home/Common/extend.php (定義が存在すると仮定)
App/Conf/Config.php => アプリケーション/Home/Conf/config.php
App/Lang/zh-cn/common.php => Application/Home/Lang/zh-cn.php (存在すると仮定)
アプリ/ライブラリ/アクション => アプリケーション/ホーム/アクション
アプリ/ライブラリ/モデル => アプリケーション/ホーム/モデル
アプリ/Tpl => アプリケーション/ホーム/ビュー
ホーム ディレクトリの外観のため、.htaccess ファイルを次のように変更する必要があることに注意してください。
コードをコピーします コードは次のとおりです:
オプション +シンボリックリンクをフォロー
リライトエンジンオン
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$index.php/home/$1 [QSA,PT,L]
新しいディレクトリでは、Action と Tpl の名前がそれぞれ Controller と View に変更され、MVC フォルダーのデプロイメント方法がより直感的に反映されます。 Action を保持している友人については、Application/Common/config.php の情報を変更できます:
コードをコピーします コードは次のとおりです:
'DEFAULT_C_LAYER' => 'Action', // デフォルトのコントローラーレイヤー名
'MODULE_ALLOW_LIST' => array('Home','Admin',...), // オリジナルのグループリストを設定します
'DEFAULT_MODULE' => 'Home', // オリジナルのデフォルトグループを設定します
4. システム構成パラメータの変更
コードをコピーします コードは次のとおりです:
APP_GROUP_LIST
APP_GROUP_MODE
APP_AUTOLOAD_PATH
APP_TAGS_ON
APP_GROUP_PATH
DEFAULT_APP
デフォルト_グループ
VAR_グループ
LOG_DEST
LOG_EXTRA
コードをコピーします コードは次のとおりです:
DEFAULT_MODULE => DEFAULT_CONTROLLER
5. ネームスペース
コードをコピーします コードは次のとおりです:
名前空間 HomeAction;
ThinkAction を使用します;
プロジェクトでコントローラーの階層化を使用している場合は、各階層化されたクラス ライブラリ ファイルに同様のコードを追加する必要があります。たとえば、イベント レイヤーを定義する場合は、それをヘッダーに追加する必要があります。
コードは次のとおりです:
名前空間 HomeEvent;
ThinkAction を使用します;
プロジェクトの Application/Home/Model ディレクトリにあるすべてのファイルのヘッダーに次のコードを追加します (コメントを除く最初の行である必要があります):
コードは次のとおりです:
名前空間 HomeModel;
ThinkModel を使用します;
プロジェクトでモデルの階層化を使用する場合、階層化された各クラス ライブラリ ファイルに同様のコードを追加する必要があります。たとえば、サービス レイヤーがある場合は、それをヘッダーに追加する必要があります。
コードをコピーします
コードは次のとおりです:
名前空間 HomeService;
ThinkModel を使用します;
6.メソッドの調整
コントローラー クラス ThinkController または ThinkAction の次のメソッドは非推奨になりました:
失効方法 | 代替方法 |
---|---|
_get('id') | 私('get.id') |
_post('id') | 私('post.id') |
_put('id') | 私('put.id') |
_param('id') | 私('id') |
_request('id') | 私('request.id') |
_cookie('id') | 私('cookie.id') |
7. 一定の調整
次の定数は非推奨になりました:
APP_NAME // バージョン 3.2 ではこの定数を定義する必要はありません
__GROUP__ // バージョン 3.2 では、__MODULE__ を使用してモジュールの URL アドレスを表すことができます
GROUP_NAME //バージョン 3.2 では、MODULE_NAME を使用して現在のモジュール名を取得できます
MODE_NAME // バージョン 3.2 のモード拡張は廃止されました。以下のモード調整セクションを参照してください
これで基本的に移行は完了します。途中で変更がある場合は、公式ドキュメントにアクセスして答えを見つけてください。
上記は、この記事で説明した ThinkPHP3.2 の変更点です。皆様のお役に立てれば幸いです。
。