Смотри. У вордпреса метод контроллера плагина принимает на вход только $response, а $request получает из реестра допустим.
То есть он вот так запускает свои плагины:
$pluginList = ['дофига плагинов'];
foreach ($pluginList as $plugin) {
$response = $plugin->indexAction($response);
}
echo $response;
Допустим друпал передаёт request/response:
$request = new Request();
$pluginList = ['дофига плагинов'];
foreach ($pluginList as $plugin) {
$response = $plugin->indexAction($request, $response);
}
echo $response; // или как там правильно с потоками, я пока не въехал
А я передаю http:
$http = new Http(Request, Response);
$pluginList = ['дофига плагинов'];
foreach ($pluginList as $plugin) {
$http = $plugin->indexAction($http);
}
echo $http->response; // или как там правильно с потоками, я пока не въехал
Так вот. Во первых друпал не сможет запустить плагин вордпреса потому что друпал первым параметром передаст $request, а плагин вордпреса принимает $response.
Ну ладно, это можно как то настроить. Но фреймворки должны поддерживать такой функционал, как бы предусматривать что аргументы могут быть поменяны местами. Что собственно уже не кроссплатформеность.
Или обратная ситуация, ставим плагин от друпала на вордпресс, а плагин друпала ожидает получить $request, а вордпресс передаёт $request только через реестр. Плагин друпала во первых ничего не знает о этом реестре, как и остальных зависимостях, но это ладно, зависимости можно подтянуть с половиной друпала, но суть в том что интерфейс метода другой, и тут в любом случае придётся переписать либо плагин, либо вордпресс.
А в моём случае вообще http на вход требуется, и вернуть плагин должен http объект, а не response как у других.
И опять же, ты сделал свою реализацию psr-7, со своими методами, я сейчас начну её использовать. Мои плагины будут юзать твои самодельные методы.
Потом я захочу поставить свой плагин на другую систему, а там реализация chee psr-7, без твоих методов.
То есть в мой плагин придёт request/respons без методов, которые используются в этом плагине.
В итоге ну вообще никак не кроссплатформенность.
Я понимаю если бы был psr-интерфейс для методов контроллеров, а на него можно было бы наложить psr-7.
Тогда была бы хотя бы односторонняя поддержка. Например друпал использует чистый psr-7, а ты свой.
Ты к себе можешь ставить плагины друпала, а он твои не может. То есть даже тут нет никакой кроссплатформенности о которой так пишут в статьях по psr-7.
Получается "кроссплатформенность" относится только к разработчику, типа раньше он работал с симфони, теперь с yii, а там похожие реализации psr-7, так что без проблем. Но и тут нифига, потому что во первых у yii может быть сильно мутированная psr-7, к которой ты привыкнешь, а на другую силно мутированную psr-7 от симфони ты будешь плеваться. Во вторых есть ещё наверно миллионов 7 других библиотек, которыми пользуются плагины.
В итоге я опять не понимаю как можно было подумать о совместимости, да ещё и статьи писать на эту тему. А ты именно про это и писал.