ThinkPHP 3.2 版本升級(jí)了哪些內(nèi)容

字號(hào):


    ThinkPHP 3.2發(fā)布了挺長(zhǎng)時(shí)間了,這里也總結(jié)下這次ThinkPHP 3.2到底發(fā)生了哪些變化,方便程序員們進(jìn)行開發(fā)。
    前言
    ThinkPHP 3.2 基于 ThinkPHP 3.1 的基礎(chǔ)上有許多的變化,我覺得這個(gè)版本應(yīng)該設(shè)立為 ThinkPHP 4.0 而不是什么 3.2。如果你在使用 ThinkPHP 3.1 請(qǐng)勿貿(mào)然遷移升級(jí),這可不是簡(jiǎn)單的覆蓋下文件就安然無恙的事情。
    1. PHP 的版本
    ThinkPHP 3.2 要求 PHP 5.3 以上的版本,而 ThinkPHP 3.1 只需要 PHP 5.2 就好了
    2. 程序文件夾的修改
    ThinkPHP 3.2 使用 Application 作為程序文件夾,而 ThinkPHP 3.1 則是用 app 作為程序文件夾。
    3. 不同分組設(shè)定的升級(jí)
    建議以后開發(fā)盡量不要做分組,要不然針對(duì)分組,有不少要處理的地方,這里只是介紹未分組的情況,有做分組的朋友,請(qǐng)上官方文檔尋找答案。
    ThinkPHP 3.2 設(shè)置了一個(gè) Home 目錄,很多文件都將遷移到 Home 目錄中。
    代碼如下:
    App/Common/common.php => Application/Home/Common/function.php
    App/Common/extend.php => Application/Home/Common/extend.php(假設(shè)存在定義的話)
    App/Conf/Config.php => Application/Home/Conf/config.php
    App/Lang/zh-cn/common.php => Application/Home/Lang/zh-cn.php(假設(shè)存在的話)
    App/Lib/Action => Application/Home/Action
    App/Lib/Model => Application/Home/Model
    App/Tpl => Application/Home/View
    注意,因?yàn)?Home 目錄的出現(xiàn),你需要修改你的 .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>
    否則,將會(huì)出現(xiàn)模塊找不到的錯(cuò)誤。
    新的目錄對(duì) Action 和 Tpl 進(jìn)行了重新命名,分別為 Controller 和 View,這樣更加直觀的體現(xiàn)了 MVC 的文件夾的部署方式。對(duì)于那些保留了 Action 的朋友,可以修改 Application/Common/config.php 中的信息:
    代碼如下:
    'DEFAULT_C_LAYER' => 'Action', // 默認(rèn)的控制器層名稱
    'MODULE_ALLOW_LIST' => array('Home','Admin',...), // 配置你原來的分組列表
    'DEFAULT_MODULE' => 'Home', // 配置你原來的默認(rèn)分組
    4. 系統(tǒng)配置參數(shù)的變動(dòng)
    ThinkPHP 3.2 廢棄了以下系統(tǒng)配置參數(shù)
    代碼如下:
    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
    修改了以下配置參數(shù)
    代碼如下:
    DEFAULT_MODULE => DEFAULT_CONTROLLER
    5. 命名空間
    ThinkPHP 3.2 添加了命名空間,把項(xiàng)目的Application/Home/Action目錄下面的所有文件,頭部添加如下代碼(必須是除注釋以外的第一行):
    代碼如下:
    namespace Home\Action;
    use Think\Action;
    如果你的項(xiàng)目使用了控制器分層的話,需要對(duì)每個(gè)分層的類庫文件添加類似的代碼,例如有定義Event分層的話,需要在頭部添加:
    代碼如下:
    namespace Home\Event;
    use Think\Action;
    把項(xiàng)目的Application/Home/Model目錄下面的所有文件,頭部添加如下代碼(必須是除注釋以為的第一行):
    代碼如下:
    namespace Home\Model;
    use Think\Model;
    如果你的項(xiàng)目使用了模型分層的話,需要對(duì)每個(gè)分層的類庫文件添加類似的代碼,例如如果你有Service分層,需要在頭部添加:
    代碼如下:
    namespace Home\Service;
    use Think\Model;
    6. 方法調(diào)整
    控制器類Think\Controller或者Think\Action的下列方法已經(jīng)廢除:
    廢除方法替代方法
    _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. 常量調(diào)整
    下列常量已經(jīng)廢除:
    APP_NAME // 3.2版本中無需再定義該常量
    __GROUP__ // 3.2版本中可以用__MODULE__ 表示模塊的URL地址
    GROUP_NAME //3.2版本中可以用 MODULE_NAME 獲取當(dāng)前模塊名
    MODE_NAME // 3.2版本中模式擴(kuò)展已經(jīng)廢棄,參考下面的模式調(diào)整部分
    這樣就基本上完成了遷移,如果中間還有一些修改的話,請(qǐng)上官方文檔尋找答案。
    以上就是本文所述關(guān)于ThinkPHP3.2發(fā)生的變化了,希望對(duì)大家能夠有所幫助。