用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3215|回复: 2
收起左侧

[讨论/交流] [翻译]CodeIgniter已死,CodeIgniter万岁

[复制链接]
发表于 2013-11-6 23:08:22 | 显示全部楼层 |阅读模式
本帖最后由 Ahgigu 于 2013-11-7 10:16 编辑

CodeIgniter已死,CodeIgniter万岁
这种呼声似乎每年都能听到:CodeIgniter已死。虽然老能听到这种说法,但是我不认为这种看法是对的,
我确实喜欢这个框架,而且也已经用了很多年(从06年开始)。它非常稳定、快速而且灵活,几乎能做我想要的任何事情。
使用过程中虽然也遇到过一些不爽的事情,可是这种情况在别的框架难道就没有吗?
起码在我用过的每一个框架里都或多或少有这样的或那样不爽的事情,比如Rails,Laravel,Cake。
在Bonfire,我们笃信CodeIgniter就是我们需要的。

虽然是这样,我们也觉得CI需要能够跟上现代开发者需求的步伐。所以我决定Bonfire不再会是一个纯粹的CI应用,怎么说呢?
简而言之,在需要的时候我们是绝不惧怕去更改CI的核心框架代码的。

我似乎听到了一些“亵渎神灵”的惊叫,但是请听我说完。

我们会尽力减少对CI框架代码的修改,但有时为了能够提供更强更灵活的开发体验,我们会对框架进行稍稍调整。
从Bonfire 0.7.1开始我们就正在开始对框架进行修改,我觉得你们会很乐意看到这些改进。

代码分离
在0.7中我们迈了很大一步去把Bonfire的代码从你的应用里分离出来,可还是留有一部分在application文件夹里,所以我们对Common和CodeIgniter文件
做了些调整,这样就把所有Bonfire的代码单独分离出来,我们今后的升级就会非常的简单。
唯一的例外是一些作为Bonfire构建基础的controller还放在application文件夹里,但因为在任何应用里你们都得修改这些文件,我们升级的时候也就不覆盖他们了。

路由
我感觉跟别的主流php框架比起来,CI比较弱的一点就是它的路由系统,所以我们对路由做了很大的改进。
首先,增加了一个新的Route库类,这个类借鉴了Jamie牛叉的Pigeon库还有Laravel路由的思路,提供了以下功能:
1.  基于HTTP方法的路由。所以你可以指定在哪种http方法访问时才响应的路由,比如一个只响应GET请求,另一个只响应POST请求,
能方便的指定RESTful的路由。
2.  基于资源的路由。你提供一个方法就能生成所有标准的REST路由,当然你也可以定制这个行为。
3.  加前缀。通过URI分段来给路由分组,比如http://XXX/api/xxx,http://XXX/banking/xxx什么的。
4.  上下文路由。替换了现在的上下文系统,更容易添加上下文区域来映射一个URI分段到任何你模块里的controller。虽然这个功能还需要额外的模块,但是真的很少工作就有大效果。
5.  具名路由。给你的路由命名,在应用里用这个名字来代替这个路由,这样就不怕你的路由改变影响应用里到处都用到的URL地址。

你现在就可以去github下载这个库用在你的CI应用里面,那里的有更多的介绍。

模块
我们用自己写的Loader和Router类覆盖了原来的,里面包括了我们以后会一直用的新的模块代码,这个代码替换了WireDesignz牛叉的HMVC,但是提供跟它一样的功能,
这个代码是基于Jens的HMVC,然后我们中间做了些修改。
你可能要问既然功能一样干嘛我们要做这个修改?那是因为我们需要一个解决办法来直接从Bonfire和Bonfire模块里加载文件,所以这个模块代码得好集成,Jens的HMVC基本是基于CI原生的包,更简单清晰和优雅。
另外我想集成和修改核心框架代码的原因是这样Bonfire就可以提供更高级的路由方案,比如说过滤器什么的,当然在0.7.1版本还没有,以后的版本有机会。

说再见,然后您好
这样子看起来我们就像在跟CI说再见然后自己来发展自己的CI,但是请理解,这也不是我愿意的。
你要这么看:一点点对核心框架简单的调整就给你的代码提供了更多可能的空间,更好的升级方式和更多一点欢乐。
这个其实就是你最喜欢的框架的一个更成熟的版本。

向它问声好吧!Bonfire0.7.1。
项目地址:https://github.com/ci-bonfire/Bonfire
源文地址:http://cibonfire.com/blog/codeigniter_is_dead_long_live_codeigniter









评分

参与人数 1威望 +5 收起 理由
Hex + 5 很给力!

查看全部评分

发表于 2014-2-9 00:04:09 | 显示全部楼层
看不懂
发表于 2014-2-12 10:30:39 | 显示全部楼层
文章翻译的不错~~~

本版积分规则