作者appleboy46 (小恶魔)
看板PHP
标题[心得] 升级 CodeIgniter 到 2.0 版本
时间Sat Oct 30 14:41:08 2010
网页版:
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
--
1F:→ ileadu:比较好奇 CI 2.0 效能是否有比较好.. 10/30 14:56
※ 编辑: appleboy46 来自: 74.207.249.141 (10/30 15:24)
2F:→ superpai:其实1.7就可以把application自己拉出来跟system平行 10/30 16:37
3F:→ tkdmaf:透过修改部份功能,可以一堆网站共用一个application 10/30 16:51
4F:→ appleboy46:我想表达的是 2.0 跟之前的版本区别 10/30 17:41
5F:→ appleboy46:针对初学者刚拿到档案的差别 10/30 17:41
6F:→ appleboy46:可以拉出来也是因为我们修改了 index.php 10/30 17:41
7F:→ rz12345:发现小恶魔!! 10/30 23:57
8F:→ liaosankai:/_\不知道是不是我没看到,呜~没加入ORM 11/02 13:07
9F:→ liaosankai:>"<看来还是没办法从Ko3跳回CI2 11/02 13:08
10F:→ ileadu:楼上可以考虑自己挂上啊.. 11/02 20:59
11F:推 liaosankai:CI找到的ORM都有点问题,CI+doctrine似乎不错的样子 04/11 17:11