PHP - почему реализации HTTP-сообщений?

Это может быть глупый вопрос, но я видел и читал HTTP-сообщения или PSR-7 в современной тенденции развития PHP. Почему внезапно нам нужны реализации HTTP-сообщений на PHP для современной веб-разработки?

Например, с Slim 3, теперь мы должны сделать это,

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

Теперь мы должны "обернуть" результат запроса в объект ответа HTTP.

Что не так с этим старым классическим способом ответа на запрос ниже?

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

Это легче понять для меня.

Каковы преимущества реализации HTTP-сообщений? Когда нам нужно их использовать? И почему?

1 ответ

Решение

Во-первых, я рекомендую вам прочитать раздел 3 мета-документа PSR-7.

Я попытаюсь обобщить некоторые преимущества наличия общего набора интерфейсов для описания HTTP-сообщений.

Вы можете использовать переменные superglobals (как $_GET а также $_POST), но они глобально изменчивы. Вместе с этим модулем и интеграционным тестированием вашего кода становится сложно.

По этим причинам многие PHP-фреймворки решили реализовать абстракцию для представления HTTP-сообщений (см., Например, Symfony HttpFoundation или Zend\Http).

Это привело к ситуации, когда любое приложение основывалось на конкретной реализации HTTP-сообщений, поэтому его было трудно использовать в проектах, построенных с использованием других платформ.

Вот почему общий набор интерфейсов помогает абстрагировать HTTP-сообщения и работать с ними независимо от платформы.

Клиент отправит запрос и вернет ответ. Как разработчик, вы создадите и заполните запрос, а затем проанализируете ответ. Оба запроса и ответы являются неизменными; если вы вносите изменения, например, вызывая методы установки, вы должны получить возвращаемое значение, так как это новый экземпляр.

Другие вопросы по тегам