Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482200
  • 博文数量: 95
  • 博客积分: 2117
  • 博客等级: 大尉
  • 技术积分: 2301
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-16 21:10
个人简介

辽宁铁岭人,现居大连。1970年生。 先后供职于 中国国际海运网、大连学堂科技、大连华仁视线网络科技有限公司、大连中科海云科技有限公司,任职技术总监。 精通PHP、JAVA、Javascript、HTML、CSS等网络编程技术及Linux操作系统。 精通面向对象编程、设计模式、重构及互联网产品设计。

文章分类

全部博文(95)

文章存档

2013年(31)

2012年(2)

2011年(34)

2010年(25)

2008年(3)

分类:

2008-06-21 00:15:50

有朋友向我要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-2


简要说明一下:

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) |
0

上一篇:没有了

下一篇:Zend Framework 测试驱动开发 编程实践(二)

给主人留下些什么吧!~~