feat: split Swoole adapters, add compression, adopt utopia-php/servers#230
feat: split Swoole adapters, add compression, adopt utopia-php/servers#230ChiragAgg5k wants to merge 3 commits into0.34.xfrom
Conversation
…a-php/servers - Split Swoole adapter into Swoole (SWOOLE_PROCESS) and SwooleCoroutine (coroutine-based) servers - Add response compression support with configurable min size and algorithm selection - Migrate Hook to utopia-php/servers and Route now extends Servers\Hook - Add View class for template rendering - Add trusted IP header support and IP validation in Request - Enhance Response with cookie management, content-type helpers, and chunked transfer - Add utopia-php/servers and utopia-php/compression dependencies - Fix server-swoole.php test server to work with non-coroutine Swoole adapter - Disable Swoole cookie parsing to preserve raw Cookie headers
Greptile SummaryThis PR is a broad feature branch that splits the monolithic Swoole adapter into a process-based ( Key issues found during review:
Confidence Score: 3/5
Important Files Changed
|
- Remove Content-Length before re-adding after compression to prevent duplicate headers - Defer onStart callback into coroutine event loop for SwooleCoroutine adapter consistency - Add null-coalescing fallback for preg_replace in View::render - Add void return types to compression setter methods for API consistency
01c863f to
78ff103
Compare
- Remove Content-Length before re-adding after compression to prevent duplicate headers - Defer onStart callback into coroutine event loop for SwooleCoroutine adapter consistency - Add null-coalescing fallback for preg_replace in View::render - Add void return types to compression setter methods for API consistency
- Remove Content-Length before re-adding after compression to prevent duplicate headers - Defer onStart callback into coroutine event loop for SwooleCoroutine adapter consistency - Add null-coalescing fallback for preg_replace in View::render - Add void return types to compression setter methods for API consistency
78ff103 to
94a3af2
Compare
- Remove Content-Length before re-adding after compression to prevent duplicate headers - Defer onStart callback into coroutine event loop for SwooleCoroutine adapter consistency - Add null-coalescing fallback for preg_replace in View::render - Add void return types to compression setter methods for API consistency
94a3af2 to
578cdec
Compare
Summary
Swoole\Servernow usesSwoole\Http\Server(SWOOLE_PROCESSmode) for traditional multi-process serving, while the newSwooleCoroutine\ServerusesSwoole\Coroutine\Http\Serverfor coroutine-based servingsetCompression(),setCompressionMinSize(), andsetCompressionSupported()on theHttpclassHooktoutopia-php/servers: removed localHookclass;Routenow extendsUtopia\Servers\HookViewclass for template rendering with nested view support and content-type helpersRequestwith trusted IP header support, IP validation, and cookie parsing improvementsResponsewith cookie management, content-type helpers, chunked transfer encoding, and compression integrationutopia-php/servers(0.3.) andutopia-php/compression(0.1.)start()inCoroutine\run()(incompatible withSWOOLE_PROCESSmode), andhttp_parse_cookieis disabled on both Swoole adapters to preserve rawCookieheadersTest plan