如何使用Zend Framework和PHPUnit成功创建项目?

首先我要说的是,我已将其发布到多个论坛,甚至试图在ZF IRC频道上获得帮助.我一直在谷歌搜索,但仍然没有结果.我过去在这个网站上看过很多Q和A,所以我想我会创建一个帐户并尝试问你.

(是的,我搜索了之前提出的问题,但没有一个答案对我有帮助.)

我正在尝试学习如何将Zend Framework用于我加入的新项目.出于兼容性原因,他们使用的是Zend 1(而不是更新的Zend 2).我发现并遵循了许多在线和实体书籍教程,但我一遍又一遍地得到相同的结果.

所以这里(这是所有教程给出的指令).我去了framework.zend.com并下载了完整版的ZF 1.12.

>我解压缩了内容
>我将库文件夹移动到一个不会被修改的安全目录
>我将bin文件夹的内容移动到与PHP可执行文件相同的目录中
>我更改了PHP.ini文件中的include_path以包含库目录
>我更新了我的Windows PATH变量,以确保它包含PHP可执行文件的路径
>我跑了

zf –help
>此命令按预期工作.我也成功运行了zf show version(Zend Framework Version 1.12.7).
>我跑了命令

zf创建项目myproject

执行此操作时,我收到以下错误消息:

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in D:\Zend\library\Zend\Test\PHPUnit\ControllerTestCase.PHP on line 48

这个特定的行是一个扩展PHPUnit_Framework_TestCase的类声明.我不知道PHPUnit_Framework_TestCase的定义在哪里.它不在我从Zend下载的单个ZIP文件中的任何文件或目录中.我甚至在搜索字符串“class PHPUnit_Framework_TestCase”的所有文件文件夹上运行grep,但它没有打印结果.

有人建议我没有安装PHPUnit(这对我来说很明显).让我烦恼的部分是,我读过的任何教程都没有提到任何关于安装PHPUnit的事情或者如何安装它或者Zend对它有什么依赖.其中许多是初学者教程,假设你只有PHP的基本知识,而且我甚至没有提到过PHPUnit,这让我很震惊.如果PHPUnit非常重要,我会认为我从Zend下载的文件会包含它.我猜不会.

所以我再次上网并获得了PHPUnit的PHAR文件,但现在又怎样了?我尝试将它放在多个不同的目录中,但我仍然得到相同的错误.我不应该使用PHAR文件吗?我应该使用实际文件吗?

我需要做些什么才能让ZF识别PHPUnit,解决错误并创建我的第一个ZF项目?

附加信息:
Windows 7,XAMPP Server(在localhost上运行),PHP 5.5.6

解决方法:

假设您已经安装了PHPUnit并且它位于您的include路径上(请记住,ZF1仅正式支持PHPUnit 3.4.x并且绝对不支持PHPUnit 3.5.x以上的任何内容,因此如果您使用的是XAMPP,则可能需要降级PHPUnit如here所述.问题很可能是由于这个commit,其中对PHPUnit的require调用被剥离,支持使用自动加载器. CLI上的ZF工具不会设置自动加载器,因此找不到PHPUnit,因为它根本不是必需的!要解决此问题,可以将这些行返回到Zend / Test / PHPUnit / ControllerTestCase.PHP的开头

/** @see PHPUnit_Runner_Version */
require_once 'PHPUnit/Runner/Version.PHP';

/**
* Depending on version, include the proper PHPUnit support
* @see PHPUnit_Autoload
*/
require_once (version_compare(PHPUnit_Runner_Version::id(), '3.5.0', '>=')) ? 'PHPUnit/Autoload.PHP' : 'PHPUnit/Framework.PHP';

值得注意的是,即使你提到错误,ZF工具在设置项目时仍然可以正常工作,它不会产生单元测试操作(你必须自己制作).如果您不想降级XAMPP PHPUnit版本,则应该能够使用composer在本地向项目添加正确的版本,如here所述.

2015年1月更新:
不再需要为XAMPP降级PHPUnit,因为自1.12.7以来ZF1至少支持PHPUnit 4.1版本(我没有在4.1以上测试过).这很有用,因为截至2014年12月,PHPUnit拥有completely removed他们已弃用的Pear存储库,这意味着您无论如何都无法下载早于3.7的版本! (目前XAMPP附带PHPUnit 3.6).这些天虽然在Vagrant配置期间可能值得让XAMPP用于Vagrant并通过Composer全局安装PHPUnit 4.1.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...