cwe*_*ske 12 php model-view-controller phpunit frameworks controller
我正在寻找一个(小)库,帮助我干净地为我的宠物项目实现一个前端控制器,并将请求分派给单个控制器类.前端控制器/调度程序和控制器类需要完全unittestable而不发送HTTP请求.
SemanticScuttle是一个必须获得适当"C"支持的应用程序,它是一个现有的工作应用程序.库需要融入其中,并且需要使用现有的结构和类.我不会重写它以匹配框架的特定所需目录布局.
该应用程序已经具有单元测试,但基于HTTP请求,这使得它们变慢.此外,目前.php在www目录中拥有几十个文件的旧方法并不是最容易管理的解决方案,这就是为什么需要引入适当的控制器类的原因.总而言之,将有大约20-30个控制器.
总的来说,我对以前的一些项目使用Zend Framework非常满意,但它有几个缺点:
虽然这些点似乎是挑剔,但它们对我来说很重要.如果我必须自己实现它们,我不需要使用外部库,而是编写自己的库.
StackOverflow上有一个亿"什么是最好的PHP框架"的问题(1,2,3,4,5),但我不找那些但是对于一个特定的库,与控制器的帮助.如果它是模块化框架的一部分,那很好.
我也知道PHP框架比较网站,但它没有帮助回答我的问题,因为我的要求没有在那里列出.
而且我知道我可以自己构建这一切并发明另一个微框架.但为什么?已经有这么多了,而且只需拥有我需要的一切.
很了解Symfony2,我可以向你保证,它绝对可以仅用于MVC中的"C".模型和模板完全免费,并且通常从控制器执行,因此如果您没有专门调用Doctrine或Twig,您可以执行您想要的操作.
至于功能测试,这正是你在文章中所讨论的,你想要看的是WebTestCase类,它可以通过LiipFunctionalTestBundle包进行更好的补充,以获得更高级的案例.
这允许一些事情,例如测试发送电子邮件的联系表单的示例,其中整个HTTP请求在进程中完成,因为编写框架以允许每个进程多个请求并且没有全局状态,这非常有效并且不需要运行http服务器或任何东西.正如您所看到的,我也对响应的HTTP状态代码进行了断言,并且能够在不发送电子邮件的情况下捕获电子邮件,因为在测试配置中,在Symfony2的标准发行版中禁用了电子邮件发送.
话虽这么说,你也可以使用Symfony2的HttpFoundation组件中的Request和Response类.它应该允许您测试您的代码,但IMO如果您使用整个框架,您将无法获得尽可能多的好功能.当然那只是我的偏见;)
| 归档时间: |
|
| 查看次数: |
1739 次 |
| 最近记录: |