PHP前端控制器库,支持单元测试

前端之家收集整理的这篇文章主要介绍了PHP前端控制器库,支持单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个(小)图书馆,帮助我清理了 front controllerpet project,并向单控制器类发送请求.前端控制器/调度程序和控制器类需要完全单元测试,而不发送HTTP请求.

要求

> PSR-0兼容
>可以通过自己的PEAR channel安装
>单元测试支持

检查是否发送正确的HTTP头
>捕获输出以允许在单元测试中进行检查
>优选PHPUnit帮助程序方法来帮助检查输出(对于不同的输出类型,即HTML,XML,JSON)
>允许设置传入的HTTP头,GET和POST参数和cookie,而不会实际执行HTTP请求

>需要独立使用 – 没有db抽象,模板化,所以fat框架都提供

背景

SemanticScuttle,一定要获得正确的“C”支持的应用程序是一个现有的工作应用程序.图书馆需要融入其中,需要与现有的结构和课程配合使用.我不会重写它来匹配框架的特定的所需目录布局.

应用程序已经具有单元测试,但是基于使HTTP缓慢的HTTP请求.此外,目前在www目录中拥有几十个.PHP文件的旧方式不是最具有管理性的解决方案,因此需要引入正确的控制器类.总而言之,将有约20-30个控制器.

以往的经验

一般来说,对于以前的一些项目,我对Zend Framework感到非常高兴,但它有几个缺点:

>不是可以安装的,所以我不能用它作为我的pear安装应用程序的依赖
>只能作为一个胖的下载,所以我手动需要从它提取所需的位 – 对于每一个ZF更新.
>当ZF控制器存在单元测试支持时,它缺乏一些高级实用功能,如json断言,HTTP状态代码内容类型检查.

虽然这些观点似乎是挑剔的,但对我来说重要.如果我必须自己实现,我不需要使用外部的libary,而是写我自己的.

我不想要什么

StackOverflow有一个百万“什么是最好的PHP框架”的问题(1,2,3,4,5),但我不是在寻找那些,而是一个特定的库,帮助控制器.如果它是模块化框架的一部分,很好.

我也知道PHP framework comparison website,但这并没有帮助我回答我的问题,因为我的要求不在那里.

而且我知道我可以自己构建这一切,并发明另一个微框架.但为什么?已经有这么多人了,只有一件我需要的.

相关问题

> What’s your ‘no framework’ PHP framework?
> How do you convert a page-based PHP application to MVC?

知道Symfony2好了,我可以向你保证,绝对有可能只用于MVC中的“C”.模型和模板是完全免费的,通常从控制器执行,所以如果你不专门调用Doctrine或Twig,你可以做你想要的.

对于功能测试,这正是您在文章中正在谈论的内容,您要查看的是WebTestCase类,它可以为the LiipFunctionalTestBundle bundle提供更高级的案例.

这允许一些事情,例如testing a contact form that sends an email的这个例子,其中整个HTTP请求已经完成,因为框架被编写为允许每个进程多个请求,并且没有全局状态,这很好,并且不需要http服务器正在运行或任何东西.您可以看到我对响应的HTTP状态代码做了断言,并且自从在Symfony2的标准发行版中的测试配置sending of emails is disabled之后,可以捕获电子邮件而不发送.

话虽如此,您也可以使用Symfony2的HttpFoundation组件的Request and Response类.它应该允许您测试您的代码,但是如果您使用整个框架,IMO将不会获得尽可能多的不错功能.当然这只是我有偏见的意见)

猜你在找的PHP相关文章