PHP 框架 CodeIgniter 发布 2.0 版 - 开源中国社区
PHP 框架 CodeIgniter 发布 2.0 版
红薯 2011年01月30日

PHP 框架 CodeIgniter 发布 2.0 版

红薯 红薯 发布于2011年01月30日 收藏 1 评论 7

有免费的MySQL,为什么还要买? >>>  

今天,EllisLab 和 CodeIgniter Reactor 的工程师们自豪的宣布:CodeIgniter 2.0.0 的第一个官方版本发布了!它有两个版本(或分支):

CodeIgniter Core 版

Core 版是一个更新较慢的分支,它是 EllisLab 商业产品的基础,例如 ExpressionEngine 和 MojoMotor。Core 版的更新频率将会与 CodeIgniter 之前的相当,这将更适用于对稳定性与版本兼容性要求较高的大型软件,或一些对 SLA 有依赖的企业级软件。Core 可在 BitBucket 下载。

CodeIgniter Reactor 版

Reactor 版是社区驱动的分支,这将更快的采纳社区提交的优秀代码。这意味着社区可以在 BitBucket 上创建一个项目的 fork,然后可以贡献 BUG 修复、新特性或完善文档等,并需要通过代码评审小组的评审。这些工程师主要负责推动框架的开发。

EllisLab 为 Core 版开发的新特性等内容将会合并入 Reactor 版中,并且 EllisLab 将积极推动 Reactor 版的发展。Reactor 版是在日常工作中推荐使用的版本。当你在本站看到“CodeIgniter”时,它指的是 CodeIgniter Reactor 版。在下载、文档和论坛中都反映出了这种变化。简单地说,Reactor = CodeIgniter。

CodeIgniter 从 1.7.3 到 2.0 的主要变化是:

  • 不再支持 PHP 4,现在最低要求是 PHP 5.1。
  • 表单辅助函数内建 CSRF 保护。
  • 适配器
  • 应用程序包
  • 脚手架在数个版本之前就已废弃,现在它已被删除。
  • 删除过时的验证类。
  • 插件已被删除,用辅助函数代替。
  • 添加了对主 index.php 文件中路由的重写,从而能够基于每个“index”文件重写路由。
  • 添加 $route['404_override'],以便可以通过控制器来处理 404 页。
  • 至少修复了 50 个 BUG。

Reactor 版包含上面的所有特性,并且它自己也有一些优秀特性:

  • 完整的 query-string 支持。
  • 如果 base_url 为空,则自动检测。
  • 新的缓存适配器,支持文件系统、APC 和 memcache。
  • 兼容命令行,以便简化计划任务的开发。
  • 20 个以上的调整和改进。

改善和增强的完整列表可以查看变更记录

工程师团队正在,或即将在未来第一季度里完成这些特性:

用户手册评论功能

用户很快就可以在用户手册中评论每一篇文章,这就和 php.net 中的评论差不多。随着时间的推移,这将使 CodeIgniter 的已经很优秀的文档更加有用。新的评论系统是版本化的,这将允许在发表新评论的同时保留旧的评论。

身份验证适配器

很长时间以来,身份验证库是大家共同的请求(在 UserVoice 上投了大约 800 票)。这是我们想要做的功能,如果能找到正确或接近正确的解决方案的话,但如果要实现一个足够通用并且比较简单的解决方案,就需要每个人花费大量时间做大量的工作。

更像对象的模型

当前正在测试一个功能的向后兼容性,这个功能就是允许 Active Record 返回一个代表当前结果的模型的实例。这将允许以更接近语义的方式处理数据库的内容。

相比过去,现在 CodeIgniter 是一个更加面向社区的框架。你可以通过 BitBucket 或 Phil 的 GitHub 镜像提交 pull 请求。你还会看到更频繁的发布新版本。

你还在等什么?请立即下载并开始使用!

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:PHP 框架 CodeIgniter 发布 2.0 版
分享
评论(7)
最新评论
0
经过我实际测试,证明不是 BUG,具体请看 http://codeigniter.org.cn/forums/redirect.php?goto=findpost&ptid=8619&pid=38585&fromuid=2
0
CI2.0 加载模型有Bug ,请问各位有测试过吗?
0

引用来自“中草鱼”的评论

引用来自“CodeIgniter”的评论

引用来自“中草鱼”的评论

粗略观看了下CI2.0,我有疑问:

控制器和模型的类名均没有后缀...完全可能发生命名冲突啊...

如果自己在控制器或者模型后面添加后缀以示区别, 那么URL里面可能会重复Controller这个字符串, 初始化和使用模型的时候也需要重复敲入Model字符串

为什么会选择是这样?不懂...

我觉得这是 CI 给用户的一种灵活性,CI 的设计理念就是尽量不强制用户做什么不做什么。让开发更快乐,是 CI 的最终目标。

觉得该规范的还是要规范, 在这个地方, 显然规范的利大于弊...
如果用户自己解决, 那么只能是模型名作妥协, 毕竟, 没有人愿意自己的URL总是Controller类似的字符串...
那个么model名可能是BookModel, 那么
1.模型文件名为:bookmodel.php
2.模型类名为:BookModel
3.实例化需要$this->load->model('BookModel')
4.调用需要使用$this->bookmodel->insert()

model字符串被无谓地重复鸟...

我觉得这个可能是个比较细节的地方,随着 CI 对 PHP 5 支持的越来越好,以后 namespace 都可能引入到 CI 中,这样的话后缀本身就是个累赘。
所以我觉得,CI 从一开始就尽量少的强迫用户做什么,这也是我喜欢 CI 的一个原因。
0

引用来自“CodeIgniter”的评论

引用来自“中草鱼”的评论

粗略观看了下CI2.0,我有疑问:

控制器和模型的类名均没有后缀...完全可能发生命名冲突啊...

如果自己在控制器或者模型后面添加后缀以示区别, 那么URL里面可能会重复Controller这个字符串, 初始化和使用模型的时候也需要重复敲入Model字符串

为什么会选择是这样?不懂...

我觉得这是 CI 给用户的一种灵活性,CI 的设计理念就是尽量不强制用户做什么不做什么。让开发更快乐,是 CI 的最终目标。

觉得该规范的还是要规范, 在这个地方, 显然规范的利大于弊...
如果用户自己解决, 那么只能是模型名作妥协, 毕竟, 没有人愿意自己的URL总是Controller类似的字符串...
那个么model名可能是BookModel, 那么
1.模型文件名为:bookmodel.php
2.模型类名为:BookModel
3.实例化需要$this->load->model('BookModel')
4.调用需要使用$this->bookmodel->insert()

model字符串被无谓地重复鸟...
0

引用来自“中草鱼”的评论

粗略观看了下CI2.0,我有疑问:

控制器和模型的类名均没有后缀...完全可能发生命名冲突啊...

如果自己在控制器或者模型后面添加后缀以示区别, 那么URL里面可能会重复Controller这个字符串, 初始化和使用模型的时候也需要重复敲入Model字符串

为什么会选择是这样?不懂...

我觉得这是 CI 给用户的一种灵活性,CI 的设计理念就是尽量不强制用户做什么不做什么。让开发更快乐,是 CI 的最终目标。
0
我觉得这是 CI 给用户的一种灵活性,CI 的设计理念就是尽量不强制用户做什么不做什么。让开发更快乐,是 CI 的最终目标。
0
粗略观看了下CI2.0,我有疑问:

控制器和模型的类名均没有后缀...完全可能发生命名冲突啊...

如果自己在控制器或者模型后面添加后缀以示区别, 那么URL里面可能会重复Controller这个字符串, 初始化和使用模型的时候也需要重复敲入Model字符串

为什么会选择是这样?不懂...
顶部