2008年6月2日星期一

Cakephp-即将要用的新的php框架初探

最近一直在研究cakephp的东西,看了官方的API后感觉关于cakephp的文档资料太少了,而后通过google找到了两个非常不错的网站:debuggablebakery.cakephp.org

第一个网站是两个德国小伙子的blog,他们都是cakephp社区的活跃分子,通过这个blog我开始关注起了cakephp的源代码,因为只有理解了源码才能更好的在开发的时候灵活运用各种方法和接口,另外最大的收获是我了解了什么是TDD开发模式,即Test Driven Development(测试驱动开发),cakephp用到了simpletest的unit test方式,通过开发人员的test模块,我一点点的了解了cakephp的MVC的核心,cakephp是基于ruby on rails的快速开发模型演变而来的,所以类和方法是它的最大特点,二次开发的时候必须要了解各个方法的作用,其中很多都是对php的各个函数的扩充,cake目录下的lib目录就是精华所在,很多有用的类都在其中,包括controller,component,model,behavior,datasource,view,helpers等
另外cake目录下的tests目录就是全部的核心代码测试文件了,cases下的libs就是全部核心测试文件,还有fixtures目录文件中的数据就是每一个测试model类对应数据表的表结构和测试数据,看懂了libs下面的所有类方法才算是对API掌握的比较透彻了。

另一个bakery的网站则是开源社区人贡献的很多第三方组件以及很多是用的技巧。

因为即将要做cakephp的广告联盟项目,所以我也把工作平台挪到了LAMP下,最近也积累了不少这方面的心得和体会,感觉linux就是比windows灵活不少,虽然IDE和windows下有不少的差距,但是看看bash,就够写一本书的了,它可以让我更好的去执行系统任务,虽然一开始编译安装不如windows下面的来得快捷,但是配置更加灵活方便。

还有一个使用lamp的原因是最近正在帮助andyhuang做一个wordpress的blog项目,用到了capenl, smart auto blog, openx(phpnewads),很多文档的任务执行也是在linux下实现的.越用越发现自己离不开linux了,至少它不像windows这么傻瓜式的使用,更符合程序员的逻辑。

这两天一直在看model的unit test,光一个测试文件就有3000多行代码,汗!!!发现cakephp的model简直就是一个怪物,把所有的sql语句都封装了起来,和windows欲把大家都变成傻瓜没什么两样,还得了解各个方法的运行机制和参数调用,还有那几个belongTo,hasMany, belongToAndHasMany等逻辑关系,等琢磨过来发现返回的数据数组的层次结构也得费一番周折才能搞明白,真是不理解为什么cakephp的开发人员为什么要把model设计的这么复杂,看得真是累。

不过cakephp通过console界面的scaffold方式来自动生成MVC架构是我用的最爽的功能,ruby on rails的快速开发工具果然了得。更多的心得也有待于开发之中慢慢积累了,今天先到这儿吧

没有评论: