初识Kohana3

PHP的框架层出不穷,却一直并没有成为主流开发手段。这应该是PHP自身的机制所制约的。而且,很经常的,一种提高生产效率的手段经常会影响执行效率,我们应该在生产效率和执行效率之间做一个平衡。

框架的出现使得开发更加规范化(当然也要看使用者),代码的可维护性大为提高。我并不是说没有框架代码的可维护性不高,这点有很多开源的程序给了我们很好的例子,比如wordpress。如果代码足够的规范化,结构有保证的话,应该还是比较好维护的。

目前的PHP框架技术非常多,比如Codeigniter、Kohana、Zend framework、Cake等等。虽然并没有成为开发的主流趋势,但是国内已经有越来越多的公司在开发过程中考虑使用框架进行开发。

我曾经使用过Codeigniter,这个框架的名字我总记不住,姑且叫做CI吧。后台听说Kohana是CI的PHP5版本,所以慕名使用一下,虽然从前也了解过这个框架,但是真正使用却是刚刚开始。

首先是入门方面,现在的框架几乎都是MVC模式的,一般了解MVC的朋友应该都可以比较快的入门。从文档上来看,Kohana3的文档似乎有些晦涩,不是那么容易看,用过一小段时间后也许会慢慢适应。我看到过Kohana2的文档,比Kohana3的清晰很多。也许因为Kohana是社区维护的。相比Kohana3来讲,CI的入门文档十分的不错,一看就懂。

其次是效率方面,这一点我并没有做过具体的测试,据说因为CI要兼容PHP4,在性能上做了一些牺牲,所以理论上来讲是比CI快的。不过CI的view层非常简单,一般来讲使用过多的模版技术应该是增加的读取硬盘的次数,效率是会降低的。而且Kohana使用了HMVC模式,多个模版文件合并就要读取多次硬盘,这点来看效率也不一定很高吧。网上有很多框架的效率表格,只要使用了框架效率就会有明显的降低,毕竟使用了框架更在乎的是可维护性和开发效率吧。

然后是代码方面,感觉上Kohana的一些模块制作的并没有CI那么好。Form的textarea有默认的cols和rows,这似乎不符合标准。风格上和CI明显不同的自然是因为PHP5的原因,使用大量的静态方法。

不知道使用框架会不会让PHP进入另外一个泥潭,现在的web开发有太多的新技术,但是并不代表使用太多的新技术就是好的。我觉得规范的开发应该是提高代码可维护性的有效方法,但是哪有这么容易。