Archive for » May 12th, 2007 «

用zend framework完成了两个项目

  前段时间开始尝试使用zend framework进行真正的项目开发,分别完成了公司内部的客服系统和一个web2.0的项目,两个项目由于一个仅供内网使用,一个正在进行alpha测试,所以均暂时无法提供出来在网上访问,等alpha测试完成进入Beta测试后,我会公布出来。经过这两个项目后,对zend framework的理解加深了不少。

  Zf的确是个不错的框架,基于它开发的系统逻辑和结构都非常清晰,不同的程序员很容易进行沟通和团队协作,在我的项目中主要采用了 Zend_Acl、Zend_Controller、Zend_Config、 Zend_Db、 Zend_Registry、Zend_Search_Lucene这几个模块,整个的实现完全按照MVC和纯粹的面向对象实现,在项目中整合了Smarty到Zend_View,整合Memcached到Cache,自己继承并扩展了Zend_Controller_Action的功能,主要进行一些针对各个Controller都需要的功能进行统一处理,比如基于Acl进行权限验证。同时我还借用了PEAR的一些组件,比如Http、Benchmark模块。

  这次的两个项目都基于Zf 0.9.2 实现,最近升级到了0.9.3。最早我一直犹豫是否使用Zf,主要原因是它的Search_Lucene模块对UTF8的支持不够好,加上Zend_Db的部分功能未能满足我的需求,直到0.9.2版的发布我才下了决心使用,在项目中使用的Zend_Lucene全文检索从目前来看,功能和效果都感觉不错,还没有进行大规模的性能测试,而Zend_Db我进行了扩展,增加了对MySQL的Master/Slave以及Cluster的支持。

  从团队开发、架构设计、代码规范、开发成本和周期等方面考虑,建议有条件的朋友都可以尝试一下Zf,尤其是一些类似MIS系统的BS项目,用Zf一定能事半功倍。在大型商用Web项目开发中,使用Zf也是完全可以的,性能方面等我那个项目投入使用后给出参考数据,我目前自己debug测试的结果来看,效率还是非常不错的,有可能Router方面会稍微多一些消耗,不过应该是可以接受的范围。

  最后值得一提的是Zend_Config_Ini模块个人感觉很不错,支持数字作key,可以很方便的配置出灵活的配置文件,推荐使用之 🙂

  如果有必要,我考虑后续把我的Index.php公布出来供大家参考:)

Category: PHP / Zend  29 Comments