2015-09-27 3 views
3

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

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

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

теперь должен «обертки» просьба в результате в объекте ответа HTTP.

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

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

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

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

+1

Эта статья Мэтью Вейера О'Финни (https://mwop.net/blog/2015-01-26-psr-7-by-example.html) также может пролить свет на тему – Havelock

ответ

3

Первое, что я рекомендую вам прочитать section 3 of PSR-7 meta document.

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

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

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

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

Именно поэтому общий набор интерфейсов помогает абстрагировать сообщения HTTP и работать с ними в агностическом режиме.

+0

спасибо для подведения итогов! – laukok