[心得] 升級 CodeIgniter 到 2.0 版本

看板PHP作者 (小惡魔)時間13年前 (2010/10/30 14:41), 編輯推噓1(1010)
留言11則, 6人參與, 最新討論串1/1
網頁版:http://blog.wu-boy.com/2010/10/30/2452/ 論壇版:http://ci.wuboy.twbbs.org/forum/viewtopic.php?f=7&t=2718 在國外文章看到 Phil Sturgeon 已在今年三月發佈了一篇如何將目前 CodeIgniter 版本 升級到 2.0 開發版本,轉移的經驗會在底下做介紹,PyroCMS 是該作者產品之一,也升 級到 2.0 了,大家可以參考看看。 1. 取得最新開發版 從 BitBucket 下載 最新版本。 http://bitbucket.org/ellislab/codeigniter/get/tip.zip 2. 資料夾架構改變 CodeIgniter 2.0 資料夾架構有些改變,原本 application 放在 system 目錄裡面,現在 要將 application 移動到上一層,也就是會跟 system 目錄同一層: CI 1.7.2 之前: system/application system/ index.php CI 2.0 目前 system/ application/ index.php 刪除 system 目錄,之後將 2.0 的 system 取代,並且複製底下檔案到您的根目錄 index.php application/config/foreign_chars.php application/config/profiler.php 3. 修改 models 目錄所有檔案 原先 CodeIgniter Models 必須遵照底下的格式撰寫 class Blog_model extends Model CodeIgniter 2.0 將會改成 class Blog_model extends CI_Model 也不需要問為什麼要改成這樣,改就對了 ^^。 4. 轉換 Plugin 到 helper 大家有看過之前發表的一篇:『CodeIgniter 2.0 的發展以及特性改變』2.0 將會廢除 Plugin,所以必須將自己撰寫的 plugin 通通移動到 application/helpers 目錄,並 且將所有檔名全部從 whatever_pi.php 轉換 whatever_helper.php 。 請打開 application/config/autoload.php,將 $autoload['plugins'] 資料轉到 $autoload['helpers'],這樣大致就可以了。 5. 取代舊有的驗證 您可以透過底下方法解決: 1. 改用新的表單驗證 (參考線上文件) 2. 抓舊的 Validation.php,將其放入到 application/libraries/ 目錄 6. MY_Controller 和其他一些 extended libs CI 2.0 將建立 system/core 目錄,並且將 libraries 跟核心檔案全部放入到此目錄 (像是 Router, Loader and Controller),以前原本放在 system/libraries 一些檔案 (像是Input, Lang, Output…等)也會移動到 core 裡面,所以假如您之前開發的 extend library,必須將其檔案移動到 /application/core/ 目錄。 7. CI_Language 重新命名 Language clas 原先是在 system/libraries/Language.php,現在轉移到 system/core/Lang.php,並且將 CI_Language 名稱換成 CI_Lang,如果您有用到此 class 請務必轉換名稱 8. 正式移除一些 DB method 在 1.6.x DB 一些舊有的 method orwhere, orlike, groupby, orhaving, orderby and getwhere,在 1.7.2 版本還是有保留,但是在 2.0 完全被移除了,如果您的專案裡面有這 些寫法,請麻煩修正 9. 關閉 query strings 個人認為既然使用了 CI,就不要將此功能打開,打開 $config['enable_query_strngs'] 您的 url 產生成 http://example.php/index.php?/controller 所以必須將 enable_query_strings 改成 false,但是您想要用 $_GET 的話,可以在 Controller 或 hook 加入底下程式 parse_str($_SERVER['QUERY_STRING'], $_GET); -- PHP MVC CodeIgniter 繁體中文手冊: http://tinyurl.com/mduyv8 PHP MVC CodeIgniter 繁體中文討論區:http://tinyurl.com/yayzoz8 PHP MVC CodeIgniter 中文官方網站: http://tinyurl.com/yatds8n Appleboy Blog 電腦技術: http://blog.Wu-Boy.com --

10/30 14:56, , 1F
比較好奇 CI 2.0 效能是否有比較好..
10/30 14:56, 1F
※ 編輯: appleboy46 來自: 74.207.249.141 (10/30 15:24)

10/30 16:37, , 2F
其實1.7就可以把application自己拉出來跟system平行
10/30 16:37, 2F

10/30 16:51, , 3F
透過修改部份功能,可以一堆網站共用一個application
10/30 16:51, 3F

10/30 17:41, , 4F
我想表達的是 2.0 跟之前的版本區別
10/30 17:41, 4F

10/30 17:41, , 5F
針對初學者剛拿到檔案的差別
10/30 17:41, 5F

10/30 17:41, , 6F
可以拉出來也是因為我們修改了 index.php
10/30 17:41, 6F

10/30 23:57, , 7F
發現小惡魔!!
10/30 23:57, 7F

11/02 13:07, , 8F
/_\不知道是不是我沒看到,嗚~沒加入ORM
11/02 13:07, 8F

11/02 13:08, , 9F
>"<看來還是沒辦法從Ko3跳回CI2
11/02 13:08, 9F

11/02 20:59, , 10F
樓上可以考慮自己掛上啊..
11/02 20:59, 10F

04/11 17:11, , 11F
CI找到的ORM都有點問題,CI+doctrine似乎不錯的樣子
04/11 17:11, 11F
文章代碼(AID): #1Coxu7mk (PHP)