home.social

#psr7 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #psr7, aggregated by home.social.

fetched live
  1. Did some work on the @reactphp PSR-7 v2 PR to reduce the visual diff. Managed to shave off over 4K lines in the diff, and updated `clue/http-proxy-react ` to address a blocker.

    Still, by far not my best work, but this will unlock PSR-7 V2 for ReactPHP/HTTP: github.com/reactphp/http/pull/

    #ReactPHP #PHP #HTTP #PSR7

  2. Как я php фреймворк писал

    В качестве вступления небольшой дисклеймер. Ниже длиннопост про самописный PHP-фреймворк, с примерами кода и его описанием. Автор не интерпрайз-разработчик, по образованию я юрист, а программирование для меня просто хобби, то, что меня занимает. Повествование идет о том, как я собирал свою систему исходя из своего представления о прекрасном и к чему в итоге пришел. Большинству писать свой фреймворк не нужно от слова совсем. Берете Symfony, Laravel, Spiral, [ваш любимый фреймворк], нужный набор библиотек и решаете продуктовую задачу. Это разумный путь. Зачем тогда этим занялся я? Если кратко, то потому что могу и хочу, если не очень кратко, то мне было интересно написать свой PSR-совместимый фреймворк. Все началось еще в середине десятых. На тот момент недавно вышел PHP 5.6, приняли PSR-7, позже появился PSR-15, и сборка своего велосипеда на этих новомодных абстракциях, с middleware-пайплайном, показалась мне весьма полезным и увлекательным предприятием. За основу было решено взять nyholm/psr7 , PHP-DI , для отправки ответа прикрутил laminas/httphandlerrunner , конфигурация была написана с оглядкой на тот же laminas, а middleware-пайплайн, фабрика для них, мапшрутизация, app-интеграция, провайдер аутентификации, экспорт конфигурации (в том числе экспорт замыканий) и skeleton-пакет были написаны с нуля. На это ушло примерно два или три года, и где-то к 2020 была собрана первая рабочая версия. Потом я то забрасывал проект, то возвращался к нему вновь, то переписывал куски полностью. В 2025 году решил в очередной раз переделать все. Реализовать это устремление сильно помогло развитие кодинг-агентов. Сначала Claude Code, позже Codex. Большой объем кодовой базы был переписан или написан полностью с нуля. Если после прочтения последнего предложения ты, дорогой читатель, почувствовал как свербит седалищный нерв, то не торопись писать свое фи или закрывать статью. Текст ниже не о вайб-кодинге и не о том, как можно легко и круто вкатиться в разработку не хуже интерпрайз-уровня, не имея никакой экспертизы в вопросе. Кодинг-агенты хорошо решают задачу по написанию бойлерплейта, хотя, будем честны, многие другие задачи они тоже решают на достойном уровне. В моем случае я занимался проектированием интерфейсов, архитектурой, написанием промптов, ревью и вычиткой README, а машина писала код, README, тесты, наводила на нужные мысли, предлагала, где можно посмотреть решения.

    habr.com/ru/articles/1050456/

    #php #framework #psr7 #psr15 #cqrs

  3. Been digging a little deeper on #psr7 and #GuzzleHttp lately, juggling a bit with async, promises and closures in #php and this has been incredibly fun. ❤️

  4. "Users can provide both encoded and decoded query characters. Implementations ensure the correct encoding as outlined in getQuery()." —UriInterface, PSR-7

    If I'm building a library that uses PSR-7 interfaces, how do I know whether I can provide encoded or decoded query characters to the implementation, since my library doesn't know what implementation(s) it's dealing with?

    #PHP #PHPFIG #PSR7

  5. #PSR7 just got 2 new tags! The evolution vote passed, and we got:

    1.1 with argument types
    2.0 with return types

    Both require PHP 7.2; more details available in the PSR meta doc, section 7.2, "Type additions": php-fig.org/psr/psr-7/meta/#72

  6. Do you use #psr7 in #php? I've finally opened the PSR Evolution vote to add parameter and return type declarations:

    groups.google.com/g/php-fig/c/

    Two week comment period, hopefully followed by a vote. Would love feedback; my review of the proposed patches looks very promising so far!