一个班级应该能够拥有自己的实例吗?

时间:2016-11-28 10:18:13

标签: php oop instance decoupling

我目前正在忙着一个带有回复和请求的PSR-7项目。

目前我们正在通过执行以下操作在index.php中设置应用程序:

$app = new Application();

$app->loadConfiguration(
    '../config/global.yml',
);

// Should return the response?
$app->run((new ServerRequestFactory())->createServerRequestFromGlobals());

此处run方法还调用emit方法,该方法负责发送标题并打印响应正文。

请求和响应现在在一个调用中链接在一起,这使得很难测试,因为您不希望将带有标头的响应直接发送到PHPUnit。

我已经删除了run方法链中的emit调用,并在run方法调用之后将其添加到索引中:

// Send the response.
$app->send();

这种方式它们是分离的,但缺点是我现在必须在我的Application.php($ app)类中的响应属性中保存我的响应实例。

我想将响应实例移动到响应类本身,但我的同事认为一个类永远不应该拥有自己的实例。然而,当我看到框架时,这种情况发生了很多。这是对的吗?

除了更容易测试之外,我可以使用什么参数来解耦我的请求和响应?

我对单元测试很陌生,我已经听过的一个论点是我不应该测试完整的应用程序,而是分开组件,因此不应该担心解除请求和响应的耦合。

0 个答案:

没有答案