ThinkPHP 3.2 的變化
ThinkPHP 3.2 基於 ThinkPHP 3.1 的基礎上有許多的變化,我覺得這個版本應該設立為 ThinkPHP 4.0 而不是什麼 3.2。如果你在使用 ThinkPHP 3.1 請勿貿然遷移升級,這可不是簡單的覆蓋下檔案就安然無恙的事情。這裡就列出了下面幾條 ThinkPHP 3.2 改變的地方以及遷移中的注意事項:
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 設定了一個 Home 目錄,很多檔案都將遷移到 Home 目錄中。
App/Common/common.php => Application/Home/Common/function.php App/Common/extend.php => Application/Home/Common/extend.php(假設存在定義的話) App/Conf/Config.php => Application/Home/Conf/config.php App/Lang/zh-cn/common.php => Application/Home/Lang/zh-cn.php(假設存在的話) App/Lib/Action => Application/Home/Action App/Lib/Model => Application/Home/Model App/Tpl => Application/Home/View
注意,因為 Home 目錄的出現,你需要修改你的 .htaccess 檔案為
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/home/$1 [QSA,PT,L]
</IfModule>
否則,將會出現模組找不到的錯誤
新的目錄對 Action 和 Tpl 進行了重新命名,分別為 Controller 和 View,這樣更加直觀的體現了 MVC 的資料夾的部署方式。對於那些保留了 Action 的朋友,可以修改 Application/Common/config.php 中的資訊:
'DEFAULT_C_LAYER' => 'Action', // 預設的控制器層名稱
'MODULE_ALLOW_LIST' => array('Home','Admin',...), // 配置你原來的分組列表
'DEFAULT_MODULE' => 'Home', // 配置你原來的預設分組
4. 系統配置引數的變動
ThinkPHP 3.2 廢棄了以下系統配置引數
APP_GROUP_LIST
APP_GROUP_MODE
APP_AUTOLOAD_PATH
APP_TAGS_ON
APP_GROUP_PATH
DEFAULT_APP
DEFAULT_GROUP
VAR_GROUP
LOG_DEST
LOG_EXTRA
修改了以下配置引數
DEFAULT_MODULE => DEFAULT_CONTROLLER
5. 名稱空間
ThinkPHP 3.2 新增了名稱空間,把專案的Application/Home/Action目錄下面的所有檔案,頭部新增如下程式碼(必須是除註釋以外的第一行):
namespace Home\Action;
use Think\Action;
如果你的專案使用了控制器分層的話,需要對每個分層的類庫檔案新增類似的程式碼,例如有定義Event分層的話,需要在頭部新增:
namespace Home\Event;
use Think\Action;
把專案的Application/Home/Model目錄下面的所有檔案,頭部新增如下程式碼(必須是除註釋以為的第一行):
namespace Home\Model;
use Think\Model;
如果你的專案使用了模型分層的話,需要對每個分層的類庫檔案新增類似的程式碼,例如如果你有Service分層,需要在頭部新增:
namespace Home\Service;
use Think\Model;
6. 方法調整
控制器類Think\Controller或者Think\Action的下列方法已經廢除:
廢除方法 | 替代方法 |
---|---|
_get('id') | I('get.id') |
_post('id') | I('post.id') |
_put('id') | I('put.id') |
_param('id') | I('id') |
_request('id') | I('request.id') |
_cookie('id') | I('cookie.id') |
7. 常量調整
下列常量已經廢除:
APP_NAME // 3.2版本中無需再定義該常量 __GROUP__ // 3.2版本中可以用 __MODULE__ 表示模組的URL地址 GROUP_NAME // 3.2版本中可以用 MODULE_NAME 獲取當前模組名 MODE_NAME // 3.2版本中模式擴充套件已經廢棄,參考下面的模式調整部分
這樣就基本上完成了遷移,如果中間還有一些修改的話,請上官方文件尋找答案。
相關文章
- ThinkPHP 3.2 系統預設變數/常量PHP變數
- ThinkPHP 3.2 模組的部署PHP
- ThinkPHP 3.2主要配置PHP
- [待完成] ThinkPHP 3.2 的配置PHP
- ThinkPHP 3.2 模板研究PHP
- ThinkPHP3.2 中 behavior 的使用PHP
- ThinkPHP 3.2 中 session 的處理PHPSession
- thinkphp3.2 執行流程PHP
- thinkphp 3.2 redis memcache 呼叫方法PHPRedis
- thinkphp3.2.x漏洞分析PHP
- thinkphp3.2 做的小故事網站PHP網站
- Thinkphp3.2 下載檔案的方法PHP
- ThinkPHP3.2練手網站PHP網站
- ThinkPHP3.2開發的視訊系統PHP
- ThinkPHP 3.2 內建系統函式PHP函式
- Thinkphp3.2設定表字首,資料庫中表的格式,例項化的格式PHP資料庫
- ThinkPHP3.2寫一個簡單的installPHP
- 修改Thinkphp3.2中的跳轉提示頁面PHP
- Thinkphp 3.2 簡單輕資訊網站-—HaotizenPHP網站
- ThinkPHP3.2 快速入門(1)基礎PHP
- ThinkPHP3.2公共類庫、應用類庫ThinkPHP/Library講解PHP
- Thinkphp 3.2 撲街笑話網-—PC/WAP/微信PHP
- 基於THINKPHP3.2 開發 商城系統PHP
- 基於thinkphp3.2 開發的一個教育平臺PHP
- Thinkphp 3.2【onethink 1.0】搭建 影視搜尋系統PHP
- onethink中thinkphp 3.2版本,thinksdk報錯PHP
- thinkphp3.2開發的滯庫零件採購網PHP
- thinkphp3.2 中英文響應式企業站PHP
- 多返管家,Thinkphp 3.2 微信端的P2P記賬工具PHP
- 最新開發 Thinkphp3.2 金融類專案【用錢管家】PHP
- Thinkphp3.2+Bootstrap開發的部落格(20160309更新)PHPboot
- thinkphp3.2+jquery easy ui個人部落格 免費開源PHPjQueryUI
- 3.2 改變資料庫可用性資料庫
- ThinkPHP 自帶的分頁——改變樣式PHP
- 西子夜 基於thinkphp3.2和bootstrp3.5開發 PC/WAPPHPboot
- 關於微信分享到朋友圈(Thinkphp-tp3.2框架下實現)PHP框架
- 3.2
- thinkphp3.2,微信JS-SDK開發過程中遇到的各種問題與細節分享PHPJS