程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> ThinkPHP 3.2 版本升級了哪些內容

ThinkPHP 3.2 版本升級了哪些內容

編輯:關於PHP編程

     ThinkPHP 3.2發布了挺長時間了,這裡也總結下這次ThinkPHP 3.2到底發生了哪些變化,方便程序員們進行開發。

       

    前言

    ThinkPHP 3.2 基於 ThinkPHP 3.1 的基礎上有許多的變化,我覺得這個版本應該設立為 ThinkPHP 4.0 而不是什麼 3.2。如果你在使用 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 設置了一個 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 HomeAction;
    use ThinkAction;

     

    如果你的項目使用了控制器分層的話,需要對每個分層的類庫文件添加類似的代碼,例如有定義Event分層的話,需要在頭部添加:

     

    代碼如下:
    namespace HomeEvent;
    use ThinkAction;

     

    把項目的Application/Home/Model目錄下面的所有文件,頭部添加如下代碼(必須是除注釋以為的第一行):

     

    代碼如下:
    namespace HomeModel;
    use ThinkModel;

     

    如果你的項目使用了模型分層的話,需要對每個分層的類庫文件添加類似的代碼,例如如果你有Service分層,需要在頭部添加:

     

    代碼如下:
    namespace HomeService;
    use ThinkModel;

    6. 方法調整

     

    控制器類ThinkController或者ThinkAction的下列方法已經廢除:

    廢除方法 替代方法 _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版本中模式擴展已經廢棄,參考下面的模式調整部分

    這樣就基本上完成了遷移,如果中間還有一些修改的話,請上官方文檔尋找答案。

    以上就是本文所述關於ThinkPHP3.2發生的變化了,希望對大家能夠有所幫助。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved