3

这可能是一个愚蠢的问题,但我已经看到并阅读了当前 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 消息有什么好处?我们什么时候需要使用它们?为什么?

4

1 回答 1

3

首先,我建议您阅读PSR-7 元文档的第 3 节

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

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

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

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

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

于 2015-09-27T18:20:00.747 回答