[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PSR-7
Страницы: 1, 2, 3, 4, 5, 6, 7
Arh
twin
Я просто не пойму при чём тут PSR-7.
Что бы не адаптировать код приложения под другой API, нужно что бы новый API возвращал данные в точно таком же виде.
Даже если говорить об одинаковых сервисах, которые возвращают погоду в формате JSON.
Только один возвращает:
{
moscow: {
value: 3
}
}

А другой:
{
moscow: {
gradus: 3
}
}

Даже тут нужно менять код, что бы вместо value забирать gradus.
Где именно в данном случае клиенту поможет твой код:

$name = $request->query()->get('name');


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Совсем всё плохо... Ты когда-нибудь видел сырой поток, который отправляет сервер? Или запрос браузера? То, что находится между ними? В каком виде отправляются данные? На вот, первопопавшаяся ссылка. Изучай.

PSR-7 регламентирует это, а не градусы никакие.



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
twin
Да при чём тут это ёпрст? Печаль тоска...
Цитата
И чтобы попасть в твою тусовку (использовать твой API), им придется переписывать код, адаптируя под твою свистоперделку.

Какой код им придётся переписывать что бы получить градусы с моего API?
Тот код, который получал список запчастей с API экзиста?
С PSR-7 конечно же ничего не надо переписывать, одно приложение волшебным образом превратится в другое, просто обратившись к моему серверу с PSR-7.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
А ссылка твоя к PHP вообще не относится, я сомневаюсь что телеграм на PHP написан.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Ох, дай Бог терпения...

Какие нафиг запчасти. Вот смотри. Если ты сформируешь поток так:
HTTP/1.1 200 OK  

Покупайте запчасти!
То его поймет любой браузер и любой клиент, юзающий RFC.

Если так:
Покупайте запчасти!

SVISTOPERDELKA/5.7 ЗАШИБИСЬ
, то его никто не поймет. Быть может только твой, самопальный клиент, поддерживающий этот "протокол".

Ты ничего не можешь понять, потому что всё это за тебя делает PHP.

PSR-7 призывает парсить сырой поток, и получать запчасти из него. И формировать отклик не средствами PHP, а своими скриптами. А чтобы небыло разброда, как я показал, там все регламентируется.

На коде. Ты отправляешь заголовок так:
header('Content-Type: text/plain');
И что там внутри происходит, тебя волнует мало. А тут нужно сначала сформировать отклик, потом отправить. Условно так:
$response->withHeader('Content-Type', 'text/plain');

А как сформировать сам отклик, чтобы получилось
Content-Type: text/plain
, да еще в нужном месте, это твой головняк. Некий квест - отправить заголовок не юзая header(). :)

Вот чтобы правильно с точки зрения протокола и RFC это сделать, и придумали набор рекомендаций под названием PSR-7

Свернутый текст
UPD Меня щас закидают шапками за такое объяснение. :) Я знаю, что основная цель - представить сообщение в виде объектов. Но он даже основ понять не может. :(


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
twin
Зачем ты мне втираешь про HTTP, при этом пытаясь выставить меня каким то чайником. Что бы как то покрасоваться? Ну ты красавец, полегчало?)
Я про это вообще ничего не спрашивал.

Ну допустим сделаешь ты
$response->withHeader('Сontent encoding', 'deflate');

Напишешь документацию к API, что данные вот такие. А какой нибудь NGINX возьмёт это сожмёт, закэширует и будет выдавать Сontent encoding: gzip. А ты будешь плакать "Совсем всё плохо..., он не может . :(". Причём тут вообще PHP и какие то его стандарты, кто вообще серьёзные API на PHP пишет? Но речь не о том.

А вот об этом
Цитата
И чтобы попасть в твою тусовку (использовать твой API), им придется переписывать код, адаптируя под твою свистоперделку.

Адаптировать код твоего клиента придётся если раньше сервер отвечал так?
HTTP/1.1 200 OK  
Покупайте запчасти!

А теперь так?
Покупайте запчасти!
SVISTOPERDELKA/5.7 ЗАШИБИСЬ


Придётся. Потому что сервер решил так отвечать, с ним не поспоришь.

А вот так придётся адаптировать код клиента? Если сервер и раньше использовал PSR-7:
HTTP/1.1 200 OK  
{data: 'Покупайте запчасти!'}

И теперь использует PSR-7
HTTP/1.1 200 OK  
{content: 'Покупайте запчасти!'}


Конечно нет, ставь PSR-7, меняй свой API как вздумается каждый день, клиенты адаптировать не придётся. (сарказм)

Клиент пишется под API, нельзя взять код телеграм бота и начать этим кодом парсить API метрики. Даже если у них там PSR-7 или PDO или Centos, его в любом случае придётся адаптировать под "свистоперделку".

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Всё, здаюсь. Он непробиваем. smile.gif
Последняя попытка.
PSR-7 регламентирует не что писать в сообщении. А как его составить. Ему глубоко плевать, data: ты напишешь или content:
А вот в каком порядке, валидность и соответствие RFC его заботит. Это абстракция. Его совершенно не касаются запчасти или метрики. Но если ты составишь отклик как попало, или запрос распарсишь наоборот, вместо GET POST получится, то это будет бяда. Вот тут он как раз и нужен, чтобы не шалили.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Всё он сдался. biggrin.gif

Цитата
PSR-7 регламентирует не что писать в сообщении. А как его составить. Ему глубоко плевать, data: ты напишешь или content:

Всё верно, никто и не спорил.

Вот только клиенту на это не плевать, а значит если будет content: вместо data:, то PSR-7 тут ничем не поможет и клиента придётся переписывать, поменяешь ты data на content или HTTP/1.1. на SVISTOPERDELKA.
Цитата
И чтобы попасть в твою тусовку (использовать твой API), им придется переписывать код, адаптируя под твою свистоперделку.


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ron
Цитата (Arh @ 1.04.2017 - 21:29)
и клиента придётся переписывать, поменяешь ты data на content или HTTP/1.1. на SVISTOPERDELKA.

А, то есть тебе пофигу, переписывать клиента вместе с протоколом, или просто подогнать "парсер" данных под другое описалово? Лютый парень, я смотрю! biggrin.gif

twin
Цитата (Santehnick @ 1.04.2017 - 22:38)
Arh, да он сам неверно понял

Сначала нужно бы почитать тему, прежде чем делать такие заявления. С этого во первых все и началось. Главный вопрос был - с какого перепуга тот же Slim нагло расширил PSR-7 своими методами. Где же тут унификация?

Во вторых, это всё обсуждалось, и мидлвары тоже. Я повторяться не буду естественно. Тебе лень почитать, я с чего распинаться должен?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Santehnick @ 2.04.2017 - 01:10)
То что слим добавил свои методы никак не мешает писать независимые веб-компоненты сторонним разработчикам
Естественно. Но при одном условии. Что эти методы не будут ими использоваться. В итоге имеем ту же картину, что и с query builder. Ты пропустил это:
Цитата (twin @ 31.03.2017 - 07:57)
Да, если захочется написать "кроссплатформенный" проект, то можно следовать ему. Но тогда нужно забыть про все вкусности фреймворка. Нельзя писать так:
$email = $app->request()->post('email');
Можно только так:
$post = $app->request()->getParsedBody();
$email = $post['email'];
Потому что request()->post(), это фишка Slim.



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Ron
Цитата
А, то есть тебе пофигу, переписывать клиента вместе с протоколом, или просто подогнать "парсер" данных под другое описалово? Лютый парень, я смотрю! biggrin.gif

Может пофиг, может не пофиг, но "адаптировать" в любом случае придётся и PSR-7 тут вообще не причём.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Arh @ 2.04.2017 - 07:16)
и PSR-7 тут вообще не причём.

Оффтопик-с
У одного моего знакомого крузак. Так вот ему как то одна деваха сказала - чем больше машина, тем меньше писька. Он ей ответил - я просто люблю джипы, и мая маленькая писька здесь вообще не причем. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ron
Цитата (Arh @ 2.04.2017 - 11:16)
Может пофиг, может не пофиг, но "адаптировать" в любом случае придётся

К сожалению. Сосиски через клиента API Exist, купить, скорее всего, не получится. <;-(

twin
Цитата (Santehnick @ 2.04.2017 - 20:30)
Ты понимаешь, что независимый компонент это не про код под конкретный фреймворк, а про код без привязки к какому либо фреймворку ?
Я прекрасно это понимаю. Но я пишу фреймворк, и разговор тут именно про фреймворки. Я на этом постоянно акцентируюсь:
Цитата (twin @ 1.04.2017 - 10:48)
Для фреймворков общего назначения PSR-7 не имеет никакого смысла. И вряд ли будет широко использован. Разве что опционально.
Какой смысл ставить всю симфонию, если будешь пользоваться только компонентом PSR-7? Вот chee прекрасно справился с своим тестовым заданием, поставив одну лишь библиотеку от Zend. Чего он весь фреймворк не поставил?

Цитата (Santehnick @ 2.04.2017 - 20:30)
Физически невозможно эти кастомные методы использовать, потому что для компонента никакого slim не существует.
Единственным компонентом для фреймворка, который использует PSR-7, это реализация самого PSR-7. Любой шаг в сторону, это уже кастомный метод. Так что нет никакого смысла в этой затее для фреймворков, если только не идти по пути всеобщей унификации. Но это, как сказал Ron:
Цитата (Ron @ 1.04.2017 - 06:59)
реюзабельный код между фреймворками в части фреймворков видится большой глупостью.


И я с ним полностью согласен. На ясно, почему сей "стандарт" развивается под крылом FIG. Это же именно для фреймворков рекомендации. Неужели они и впрямь надеятся заставить всех ходить строем? Или это уже претензия на мировое господство... То то я гляжу, что после редизайна они это
Цитата
The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can work together. Our main audience is each other, but we’re very aware that the rest of the PHP community is watching. If other folks want to adopt what we’re doing they are welcome to do so, but that is not the aim. Nobody in the group wants to tell you, as a programmer, how to build your application.
с главной страницы задвинули в FAQ biggrin.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.