这可能是一个愚蠢的问题,但我在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消息有什么好处?我们什么时候需要使用它们?为什么?
答案 0 :(得分:3)
首先,我建议您阅读section 3 of PSR-7 meta document。
我将尝试总结使用一组通用接口来描述HTTP消息的一些好处。
您可以使用超全局变量(如$_GET
和$_POST
),但它们是全局可变状态。随着这个单元和代码的集成测试变得很难。
由于这些原因,许多PHP框架决定实现一个抽象来表示HTTP消息(参见例如Symfony HttpFoundation或Zend \ Http)。
这导致了一种情况,即任何应用程序都基于HTTP消息的特定实现,因此在使用其他框架构建的项目中几乎不可用。
这就是为什么一组通用接口有助于抽象HTTP消息并以框架无关的方式使用它们。
答案 1 :(得分:-1)
客户端将发送请求并返回响应。作为开发人员,您将创建并填充请求,然后对响应进行内部检查。请求和响应都是不可变的。如果您进行更改-例如通过调用setter方法-您必须捕获返回值,因为它是一个新实例。