首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

CodeIgniter 2.2 升級 3.0 完整遷移指南與坑點總結

     編輯:PHP 相關知識

核心變更清單

  1. 系統文件全替換:覆蓋 system/ 目錄、index.php。
  2. 控制器/模型文件名首字母大寫:
    application.php → Application.php
    m_application.php → M_application.php
    類名同步修改:class Application extends CI_Controller。
  3. 替換 config/mimes.php:新增大量 MIME 類型。
  4. 移除 $autoload['core']:CI 3 不再支持 core 自動加載,改用 $autoload['libraries'] 或 Composer。
  5. Session 庫重大變更:
    // 2.x $this->session->unset_userdata(array('item'=>''));
    // 3.x $this->session->unset_userdata(array('item', 'item2'));(只傳鍵名陣列)
  6. 資料庫配置更新:
    $active_group = 'default';
    $query_builder = TRUE;(替代 $active_record)
    $db['default']['dbdriver'] = 'mysqli';(棄用 mysql 驅動)
  7. 錯誤視圖遷移:將 system/views/errors/ 複製到 application/views/errors/,可自定義錯誤頁。
  8. 路由正則變更:(:any) 不再匹配 /,需用 (.+) 匹配任意字符含斜槿。
    $route['product/(:any)'] → $route['product/(.+)']

其他常見兼容性問題

領域2.x3.x處理
URI 安全字符允許較寬更嚴格$config['permitted_uri_chars'] 調整
加密庫McryptOpenSSL (encryption)重新生成金鑰,遷移數據
輸入類$this->input->xss_clean()預設關閉,建議輸出時轉義移除全局 xss_clean,用 html_escape()
日誌閾值0-4常量 CI_LOG_*更新 config.php
PHP 版本5.2.4+5.6+ (建議 7.1+)升級 PHP 同步進行

遷移驗證清單

  • [ ] 所有控制器/模型文件名、類名首字母大寫
  • [ ] config/mimes.php 已替換
  • [ ] autoload.php 移除 core、調整 libraries
  • [ ] Session 代碼全部按新語法修正
  • [ ] database.php 驅動改 mysqli、啟用 query_builder
  • [ ] views/errors/ 已複製到應用目錄
  • [ ] 路由正則 (:any) → (.+) 全局替換
  • [ ] 運行單元測試/功能測試覆蓋核心業務

官方升級文檔

CodeIgniter 3.0 升級指南(英文原版,最權威)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved