PHP - 为什么HTTP消息实现?

时间:2015-09-27 07:42:42

标签: php slim psr-7

这可能是一个愚蠢的问题,但我在PHP的开发当前趋势中看到并阅读HTTP消息或PSR-7。为什么突然之间我们需要在PHP中使用HTTP消息实现现代Web开发?

例如,使用Slim 3,现在我们要做到这一点,

$app->get('/hello/{name}', function ($request, $response, $args) {
    $response->write("Hello, " . $args['name']);
    return $response;
});

我们现在必须在HTTP响应对象中包装' 请求结果

以下回应 请求的旧经典方法有什么问题?

echo 'Hello, ' . $_GET('name');

对我来说更容易理解。

实施HTTP消息有什么好处?我们什么时候需要使用它们?为什么?

2 个答案:

答案 0 :(得分:3)

首先,我建议您阅读section 3 of PSR-7 meta document

我将尝试总结使用一组通用接口来描述HTTP消息的一些好处。

您可以使用超全局变量(如$_GET$_POST),但它们是全局可变状态。随着这个单元和代码的集成测试变得很难。

由于这些原因,许多PHP框架决定实现一个抽象来表示HTTP消息(参见例如Symfony HttpFoundation或Zend \ Http)。

这导致了一种情况,即任何应用程序都基于HTTP消息的特定实现,因此在使用其他框架构建的项目中几乎不可用。

这就是为什么一组通用接口有助于抽象HTTP消息并以框架无关的方式使用它们。

答案 1 :(得分:-1)

客户端将发送请求并返回响应。作为开发人员,您将创建并填充请求,然后对响应进行内部检查。请求和响应都是不可变的。如果您进行更改-例如通过调用setter方法-您必须捕获返回值,因为它是一个新实例。