有朋友向我要Zend Framework的项目源码,用作学习参考。我推荐了网上较流行的Zend Framework教程,朋友觉得不是实际项目,教程味太浓,不够深入,只适合入门,不适合用于实践参考。
可是手边的源码都是商业项目,无法拿出来共享。
恰好最近在学习测试驱动开发,于是虚拟了一个项目,在项目中尝试PHP的TDD(PHPUnit)编程,把实践的过程记录下来,作为学习心得,也拿出来与同学的朋友们交流。
闲话少说,这就开始吧!
一、配置环境
Apache+PHP+MySQL+PHPUnit的安装和配置就不说了,网上教程很多。
二、工具
常言道:工欲善其事,必先利其器。
ZF是Zend公司的重要武器,就搭配另一件重兵器--Zend Studio for Eclipse吧。
三、创建项目
File>New>Zend Framework Project,输入项目名称,为了日后管理方便,清除Project Contents栏中Use default前边的复选框,在Directory中输入存放源码的路径,点击 Next。
在Libraries中已经有了一个Variable,是Zend Framework的路径变量。因为要实践TDD,故而要将PHPUnit变量也加进来(其实并不一定真的用这个路径下的PHPUnit,主要是为了应对语法检查时出现的大量的unresolved include提示):点击Add Variable按钮,选择PHPUNIT_HOME,OK,Next。(如果错过了这一步,还可以在完成后,右击项目中的Include Paths,选择Configure Include Path,重新进行设定)。
这一步的JRE路径就无所谓了,finish吧。
将Apache配置中的DocumentRoot指向源码路径中的html文件夹,重启Apache,试试是不是可以看到默认页。
图1-1
接着进一步设定文件夹结构:
简要说明一下:
1、文件夹名称的大小写问题:Zend Framework的编码规范(Coding Standard)中,对类名的要求是必须与文件夹结构匹配,将路径中的分隔符换成'/'就构成了类名。但规范中还要求每个部分的首字母必须大写,如果要完全遵循规范,整个程序中的PHP程序的文件夹必须全部以大写开关。可是ZendStudio偏偏将application及子文件夹都生成为小写。这在windows中不构成严重问题,但在Linux下就至关重要了,而多数的PHP网站都采用lamp(Linux+Apache+MySQL+PHP),别的不说,单是采用Zend_Loader载入类,在Linux下就会出问题。解决方案有二个,一个是自行修改文件夹结构,另一个就是延用这个文件夹解构,然后时时注意了。实际的项目中,我都用第一种,现在试试第二种吧。
2、library文件夹的构成:Zend Framework的代码被放置在此处。虽然前边已经设置了ZEND_FRAMEWORK_HOME变量,但还是将Zend放到了项目中,这是为了方便本地运行和网上部署。如果不将Zend放入项目,在实际测试和部署项目的时候就需要额外部署Zend Framework,并且将Zend Framework的存放路径纳入到php的include_path中。
Smarty文件夹内是Smarty模板类,虽然这个实验项目没有打算用到Smarty模板,而是使用Zend Framework的默认模板,但是曾经的项目中都是用Smarty的,习惯性的将其复制到了这个项目中!
Kernel准备放一些controller和model、view的抽象父类,还有一些配置文件和数据文件。
Framework打算放一些介于Zend Framework类和application中的类的中间层次的类。
最后两项工作做的有点违反敏捷原则--为未来打算的太多,还不知道未来会不会用到这个文件夹呢,如果真用到,现建也来得及。
3、最后是tests文件夹,用于存放单元测试文件。其实单元测试如果与相应被测试的类放在一处,会更易于构建测试,但是会让项目的管理产生混乱。
阅读(2356) | 评论(0) | 转发(0) |