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: https://github.com/reactphp/http/pull/549

#ReactPHP #PHP #HTTP #PSR7

Как я 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, тесты, наводила на нужные мысли, предлагала, где можно посмотреть решения.

https://habr.com/ru/articles/1050456/

#php #framework #psr7 #psr15 #cqrs

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

В качестве вступления небольшой дисклеймер. Ниже длиннопост про самописный PHP-фреймворк, с примерами кода и его описанием. Автор не интерпрайз-разработчик, по образованию я юрист, а программирование...

Хабр

📙 The TYPO3 request object

The TYPO3 request object is an implementation of the PSR-7 based \Psr\Http\Message\ServerRequestInterface containing TYPO3-specific attributes.

➡️ https://docs.typo3.org/m/typo3/reference-coreapi/14.3/en-us/ApiOverview/RequestLifeCycle/Typo3Request.html

#TYPO3 #psr7

TYPO3 request object — TYPO3 Explained 14.3 documentation

LibrariesIO API Client

an event dispatcher feels appropriate…but not caching.

#PHP #PSR7 #PSR11 #PSR14 #PSR17 #PSR18 #PSR20

Use StructArmed v0.7.0+ for a consistent PSR-15 naming convention, structures and contracts across your codebase with the new PSR-15 Preset.

https://github.com/boundwize/structarmed

Written by the co-maintainer of #codeigniter4, #Laminas, #Mezzio, and #RectorPHP packages: @samsonasik

https://github.com/sponsors/samsonasik

#PHP #DotKernel #SlimPHP #PSR15 #PSR12 #PSR7 #PSR4 #OpenSource

GitHub - boundwize/structarmed: Configurable PHP architecture guards — define your layers and rules, then keep them enforced

Configurable PHP architecture guards — define your layers and rules, then keep them enforced - boundwize/structarmed

GitHub
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. ❤️

"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

OMG! WTF kind of AI abomination is this?!

https://www.youtube.com/watch?v=ZnoRf9o9YUI

#PHP #PSR7 #PHPFIG

PSR 7 Tutorial Simplifying HTTP Messages with PHP FIG

YouTube

I'm happy to announce the release of league/uri v7 . Please head to the documentation website to see what's new and what has changed.

The goal was to make the packages easier to install, use and abuse. Hope you like it
https://uri.thephpleague.com/ #php #url #uri #psr7 #thephpleague

I will try to share some notes on the new features and the new approach to the packages

Modern API to process URIs in PHP - URI

Modern API to process URIs in PHP

#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": https://www.php-fig.org/psr/psr-7/meta/#72-type-additions

PSR-7 Meta Document - PHP-FIG

We're a group of established PHP projects whose goal is to talk about commonalities between our projects and find ways we can work better together.