A Week of Symfony #1020 (July 13–19, 2026)
https://symfony.com/blog/a-week-of-symfony-1020-july-13-19-2026?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1v0lefi
@r_php
https://symfony.com/blog/a-week-of-symfony-1020-july-13-19-2026?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1v0lefi
@r_php
Symfony
A Week of Symfony #1020 (July 13–19, 2026) (Symfony Blog)
This week, Symfony published Symfony UX 3.3, which adds support for Symfony Reprise and includes several improvements to the toolkit. In addition, SymfonyCasts announced a new course on upgrading to S…
Who's hiring/looking
This is a bi-monthly thread aimed to connect PHP companies and developers who are hiring or looking for a job.
Rules
No recruiters
Don't share any personal info like email addresses or phone numbers in this thread. Contact each other via DM to get in touch
If you're hiring: don't just link to an external website, take the time to describe what you're looking for in the thread.
If you're looking: feel free to share your portfolio, GitHub, … as well. Keep into account the personal information rule, so don't just share your CV and be done with it.
https://redd.it/1v0kjb3
@r_php
This is a bi-monthly thread aimed to connect PHP companies and developers who are hiring or looking for a job.
Rules
No recruiters
Don't share any personal info like email addresses or phone numbers in this thread. Contact each other via DM to get in touch
If you're hiring: don't just link to an external website, take the time to describe what you're looking for in the thread.
If you're looking: feel free to share your portfolio, GitHub, … as well. Keep into account the personal information rule, so don't just share your CV and be done with it.
https://redd.it/1v0kjb3
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
I built a PHP 8.4+ radix-tree router with no runtime dependencies and a Laravel-like syntax
/r/PHP/comments/1v0ojm3/i_built_a_php_84_radixtree_router_with_no_runtime/
https://redd.it/1v0ojuj
@r_php
/r/PHP/comments/1v0ojm3/i_built_a_php_84_radixtree_router_with_no_runtime/
https://redd.it/1v0ojuj
@r_php
Reddit
From the PHP community on Reddit: I built a PHP 8.4+ radix-tree router with no runtime dependencies and a Laravel-like syntax
Posted by StefanoV89 - 0 votes and 7 comments
Looking for Symfony, Python/AI and community collaborators for a local AI code-analysis platform
I'm building an on-premise AI platform for software engineering and I'm looking for feedback—and hopefully to connect with people who might enjoy building it together.
The idea isn't to build another chatbot or compete with OpenAI. Instead, the goal is to combine deterministic static analysis with local LLMs and structured project knowledge.
Current stack:
* Symfony 8
* PHPStan
* PostgreSQL
* Python AI service
* Ollama
* Local RAG
* JSON-based analysis pipeline
The production application is currently private, but I've published the architecture and collaboration blueprint here:
[https://github.com/chrobaks/php-local-ai-blueprint](https://github.com/chrobaks/php-local-ai-blueprint)
I'm particularly interested in discussing:
* AI-assisted software engineering
* project knowledge representation
* local AI workflows
* agent orchestration
* static analysis
* RAG architectures
This is currently a passion project. I'm not a company and I'm not hiring. I'm simply looking for people who find this kind of technical challenge exciting.
If you're interested in exchanging ideas, discussing the architecture, or even contributing to the project, I'd genuinely love to hear from you. Whether you're a Symfony developer, Python engineer, AI enthusiast, DevOps engineer, technical writer, or someone interested in technical marketing and community building, you're very welcome.
Constructive criticism is just as valuable as code contributions.
https://redd.it/1v0wyul
@r_php
I'm building an on-premise AI platform for software engineering and I'm looking for feedback—and hopefully to connect with people who might enjoy building it together.
The idea isn't to build another chatbot or compete with OpenAI. Instead, the goal is to combine deterministic static analysis with local LLMs and structured project knowledge.
Current stack:
* Symfony 8
* PHPStan
* PostgreSQL
* Python AI service
* Ollama
* Local RAG
* JSON-based analysis pipeline
The production application is currently private, but I've published the architecture and collaboration blueprint here:
[https://github.com/chrobaks/php-local-ai-blueprint](https://github.com/chrobaks/php-local-ai-blueprint)
I'm particularly interested in discussing:
* AI-assisted software engineering
* project knowledge representation
* local AI workflows
* agent orchestration
* static analysis
* RAG architectures
This is currently a passion project. I'm not a company and I'm not hiring. I'm simply looking for people who find this kind of technical challenge exciting.
If you're interested in exchanging ideas, discussing the architecture, or even contributing to the project, I'd genuinely love to hear from you. Whether you're a Symfony developer, Python engineer, AI enthusiast, DevOps engineer, technical writer, or someone interested in technical marketing and community building, you're very welcome.
Constructive criticism is just as valuable as code contributions.
https://redd.it/1v0wyul
@r_php
GitHub
GitHub - chrobaks/php-local-ai-blueprint: Open-source collaboration blueprint for a local PHP/Symfony AI analyzer. Looking for…
Open-source collaboration blueprint for a local PHP/Symfony AI analyzer. Looking for Python & Symfony enthusiasts! - chrobaks/php-local-ai-blueprint
Weekly /r/Laravel Help Thread
Ask your Laravel help questions here. To improve your chances of getting an answer from the community, here are some tips:
What steps have you taken so far?
What have you tried from the documentation?
Did you provide any error messages you are getting?
Are you able to provide instructions to replicate the issue?
Did you provide a code example?
Please don't post a screenshot of your code. Use the code block in the Reddit text editor and ensure it's formatted correctly.
For more immediate support, you can ask in the official Laravel Discord.
Thanks and welcome to the r/Laravel community!
https://redd.it/1v0vud2
@r_php
Ask your Laravel help questions here. To improve your chances of getting an answer from the community, here are some tips:
What steps have you taken so far?
What have you tried from the documentation?
Did you provide any error messages you are getting?
Are you able to provide instructions to replicate the issue?
Did you provide a code example?
Please don't post a screenshot of your code. Use the code block in the Reddit text editor and ensure it's formatted correctly.
For more immediate support, you can ask in the official Laravel Discord.
Thanks and welcome to the r/Laravel community!
https://redd.it/1v0vud2
@r_php
Laravel
Installation | Laravel 13.x - The clean stack for Artisans and agents
Laravel is a PHP web application framework with expressive, elegant syntax. We've already laid the foundation — freeing you to create without sweating the small things.
I built a PHP 8.4+ radix-tree router with no runtime dependencies and a Laravel-like syntax
Hi guys,
I maintain a private PHP framework (based on Laravel core) called Ariel, where I had been using
After upgrading the project to PHP 8.4+, I started encountering compatibility warnings. Since its latest stable release appears to date back to December 2023 and the project seems relatively inactive, I decided to replace it rather than maintain framework-specific patches.
I extracted the resulting router into a standalone open-source package:
Ariel Radix Router
The API is intentionally Laravel-like, while the implementation is a small standalone router with no runtime dependencies.
Main features:
radix-tree route matching
static, dynamic and constrained routes
Laravel-like route declarations and groups
cumulative route and group middleware
predictable middleware execution order
named routes and URL generation
scalar-typed controller parameters
compiled route catalogs and optional file cache
explicit middleware lifecycles for persistent workers
support for PHP-FPM, Workerman, RoadRunner, FrankenPHP and similar environments
PHP 8.4+
The package uses PHPUnit, is analysed with PHPStan at the maximum level, and includes reproducible microbenchmarks. I’ve also integrated it back into the original framework and tested persistent request handling and memory stability under Workerman.
It is not intended to be a drop-in replacement for Pecee or Laravel’s router. The goal is to provide a focused, modern router with a familiar API and predictable performance.
I’d particularly appreciate feedback about:
the public API
middleware lifecycle design
missing routing use cases
benchmark methodology
behaviour under long-running workers
I used Codex with GPT-5.6 Sol to help write automated tests, documentation and PHPDoc, run benchmarks, and identify bugs. All resulting changes were reviewed and validated with PHPUnit, PHPStan at the maximum level, integration tests and real Workerman runs.
GitHub: https://github.com/StefanoV1989/ariel-radix-router
Packagist: https://packagist.org/packages/stefanov1989/ariel-radix-router
Thank you in advance,
Stefano.
https://redd.it/1v0ojm3
@r_php
Hi guys,
I maintain a private PHP framework (based on Laravel core) called Ariel, where I had been using
pecee/simple-router.After upgrading the project to PHP 8.4+, I started encountering compatibility warnings. Since its latest stable release appears to date back to December 2023 and the project seems relatively inactive, I decided to replace it rather than maintain framework-specific patches.
I extracted the resulting router into a standalone open-source package:
Ariel Radix Router
The API is intentionally Laravel-like, while the implementation is a small standalone router with no runtime dependencies.
Main features:
radix-tree route matching
static, dynamic and constrained routes
Laravel-like route declarations and groups
cumulative route and group middleware
predictable middleware execution order
named routes and URL generation
scalar-typed controller parameters
compiled route catalogs and optional file cache
explicit middleware lifecycles for persistent workers
support for PHP-FPM, Workerman, RoadRunner, FrankenPHP and similar environments
PHP 8.4+
The package uses PHPUnit, is analysed with PHPStan at the maximum level, and includes reproducible microbenchmarks. I’ve also integrated it back into the original framework and tested persistent request handling and memory stability under Workerman.
It is not intended to be a drop-in replacement for Pecee or Laravel’s router. The goal is to provide a focused, modern router with a familiar API and predictable performance.
I’d particularly appreciate feedback about:
the public API
middleware lifecycle design
missing routing use cases
benchmark methodology
behaviour under long-running workers
I used Codex with GPT-5.6 Sol to help write automated tests, documentation and PHPDoc, run benchmarks, and identify bugs. All resulting changes were reviewed and validated with PHPUnit, PHPStan at the maximum level, integration tests and real Workerman runs.
GitHub: https://github.com/StefanoV1989/ariel-radix-router
Packagist: https://packagist.org/packages/stefanov1989/ariel-radix-router
Thank you in advance,
Stefano.
https://redd.it/1v0ojm3
@r_php
GitHub
GitHub - StefanoV1989/ariel-radix-router: Fast, dependency-free radix-tree HTTP router for PHP 8.4+ with ordered middleware and…
Fast, dependency-free radix-tree HTTP router for PHP 8.4+ with ordered middleware and compiled caches. - StefanoV1989/ariel-radix-router
Weekly help thread
Hey there!
This subreddit isn't meant for help threads, though there's one exception to the rule: in this thread you can ask anything you want PHP related, someone will probably be able to help you out!
https://redd.it/1v1d0mj
@r_php
Hey there!
This subreddit isn't meant for help threads, though there's one exception to the rule: in this thread you can ask anything you want PHP related, someone will probably be able to help you out!
https://redd.it/1v1d0mj
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Built a Laravel integration for the official Neo4j MCP server (Neo4j Laravel Boost)
/r/mcp/comments/1v1djej/built_a_laravel_integration_for_the_official/
https://redd.it/1v1dlm5
@r_php
/r/mcp/comments/1v1djej/built_a_laravel_integration_for_the_official/
https://redd.it/1v1dlm5
@r_php
Reddit
From the PHP community on Reddit: Built a Laravel integration for the official Neo4j MCP server (Neo4j Laravel Boost)
Posted by Zoinkfwip - 0 votes and 0 comments
Built an email validation service on Laravel + Filament
Sharing because the community here helped me a lot. The whole thing (validation engine, multi-tenant dashboard, queue workers on Horizon) is Laravel + Filament. The dashboard I'd have spent a month on took a few days with Filament.
One thing I learned building it that might interest you: catch-all domains are the bane of email validation because the server says "yes" to every address. But for Microsoft 365 tenants you can hit their GetCredentialType endpoint and it'll actually tell you if a specific mailbox exists, over plain HTTPS, no SMTP. That converted a big chunk of our "unknown" results into real answers.
I also published a Laravel package (`bounceshift/laravel`) with a `Deliverable` validation rule and a facade. It fails open by design, so if our API is down or you're out of credits, it never blocks your flow.
https://bounceshift.com
https://github.com/bounceshift/laravel
Happy to talk through any of the Laravel/Filament decisions.
https://redd.it/1v1hg83
@r_php
Sharing because the community here helped me a lot. The whole thing (validation engine, multi-tenant dashboard, queue workers on Horizon) is Laravel + Filament. The dashboard I'd have spent a month on took a few days with Filament.
One thing I learned building it that might interest you: catch-all domains are the bane of email validation because the server says "yes" to every address. But for Microsoft 365 tenants you can hit their GetCredentialType endpoint and it'll actually tell you if a specific mailbox exists, over plain HTTPS, no SMTP. That converted a big chunk of our "unknown" results into real answers.
I also published a Laravel package (`bounceshift/laravel`) with a `Deliverable` validation rule and a facade. It fails open by design, so if our API is down or you're out of credits, it never blocks your flow.
https://bounceshift.com
https://github.com/bounceshift/laravel
Happy to talk through any of the Laravel/Filament decisions.
https://redd.it/1v1hg83
@r_php
BounceShift
BounceShift - Email Validation That Protects Your Sender Reputation
Stop sending emails that bounce. BounceShift validates your email lists in real-time, catching invalid addresses before they damage your sender reputation.
Laravel Tackle: An AI agent harness that lets your Laravel app code and fix itself
https://github.com/jordandalton/laravel-tackle
https://redd.it/1v1hww9
@r_php
https://github.com/jordandalton/laravel-tackle
https://redd.it/1v1hww9
@r_php
GitHub
GitHub - JordanDalton/laravel-tackle: Tackle is the runtime layer that lets AI agents operate inside your Laravel application —…
Tackle is the runtime layer that lets AI agents operate inside your Laravel application — reading code, executing tools, running tests, and taking action, with safety boundaries enforced at the fra...
PECL is down?
Cached pages seem fine but release pages like
https://pecl.php.net/rest/r/amqp/stable.txt timeout
https://redd.it/1v1nr55
@r_php
Cached pages seem fine but release pages like
https://pecl.php.net/rest/r/amqp/stable.txt timeout
https://redd.it/1v1nr55
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
modyra/modyra: A framework-agnostic, type-safe form engine
https://github.com/modyra/modyra
https://redd.it/1v1t2iv
@r_php
https://github.com/modyra/modyra
https://redd.it/1v1t2iv
@r_php
GitHub
GitHub - modyra/modyra: A framework-agnostic, type-safe form engine
A framework-agnostic, type-safe form engine. Contribute to modyra/modyra development by creating an account on GitHub.
How is Forge?
I've been looking into alternatives for the server management panel I currently use (Ploi), and I am wondering how people that have been using Forge (or used to use it) are finding it nowadays? And if you moved to Forge from Ploi/RunCloud/etc. how does it compare? And if you were using Forge but moved away, why, and to where?
For reference, I have 5 servers, and 28 applications deployed on those combined. I will not be using the Laravel VPS'.
Specifically, how is the Forge experience outside of Laravel deployments and the usage of "Laravel VPS"? While most of my applications are using Laravel, a growing amount are using Next.js or SvelteKit.
https://redd.it/1v1yvpj
@r_php
I've been looking into alternatives for the server management panel I currently use (Ploi), and I am wondering how people that have been using Forge (or used to use it) are finding it nowadays? And if you moved to Forge from Ploi/RunCloud/etc. how does it compare? And if you were using Forge but moved away, why, and to where?
For reference, I have 5 servers, and 28 applications deployed on those combined. I will not be using the Laravel VPS'.
Specifically, how is the Forge experience outside of Laravel deployments and the usage of "Laravel VPS"? While most of my applications are using Laravel, a growing amount are using Next.js or SvelteKit.
https://redd.it/1v1yvpj
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
I built a tool to manage Composer dependencies on WordPress sites without SSH access
https://www.loopress.dev/
https://redd.it/1v1ym3j
@r_php
https://www.loopress.dev/
https://redd.it/1v1ym3j
@r_php
www.loopress.dev
Loopress - Make WordPress reproducible
Loopress brings Git, Composer and reproducible environments to WordPress.
A pure PHP web server. No nginx, no Apache, no php-fpm.
What if PHP by itself was enough to run a web server?
What if it was actually \*much faster\* than NGINX + PHP-FPM?
And it was \*much safer\* than FrankenPHP or Swoole?
Well, that's exactly that this is. MIT-licensed. Enjoy!
[**https://github.com/Qbix/webserver**](https://github.com/Qbix/webserver)
**Who this is for:**
* PHP Developers who want to host things
* Normies who don't want to install and configure apache/nginx/varnish/go/ssl certificates/mysql/etc.
* People who just get the standalone binary and can host on their computer, without the internet even.
Static file throughput is 55–73% of nginx (C will always beat PHP on raw I/O).
But on actual PHP workloads, the bootstrap savings make this 2–5x faster.
This was taken from the much larger all-in-one PHP platform:
[**https://github.com/Qbix/Platform**](https://github.com/Qbix/Platform)
https://redd.it/1v1odre
@r_php
What if PHP by itself was enough to run a web server?
What if it was actually \*much faster\* than NGINX + PHP-FPM?
And it was \*much safer\* than FrankenPHP or Swoole?
Well, that's exactly that this is. MIT-licensed. Enjoy!
[**https://github.com/Qbix/webserver**](https://github.com/Qbix/webserver)
**Who this is for:**
* PHP Developers who want to host things
* Normies who don't want to install and configure apache/nginx/varnish/go/ssl certificates/mysql/etc.
* People who just get the standalone binary and can host on their computer, without the internet even.
Static file throughput is 55–73% of nginx (C will always beat PHP on raw I/O).
But on actual PHP workloads, the bootstrap savings make this 2–5x faster.
This was taken from the much larger all-in-one PHP platform:
[**https://github.com/Qbix/Platform**](https://github.com/Qbix/Platform)
https://redd.it/1v1odre
@r_php
🚀 Introducing URL Image Uploader for FilamentPHP
If you're tired of forcing users to download remote images locally just to re-upload them into your admin panels, I built a custom form component that solves this exact friction: the **URL Image Uploader** package for FilamentPHP.
# ✨ Key Features
Direct Remote Imports: Instantly fetch and attach images directly from any public web link.
Built-in Preview: Gives users an immediate preview before saving to ensure the target URL is correct.
Laravel Storage Integration: Seamlessly saves files straight to your configured storage disk and path.
Image Validation: Validates the link to ensure it targets a readable image format.
Native Look & Feel: Fully compatible with Filament's UI, including dark mode and multilingual setups.
# 📦 Quick Setup & Usage
1. Install via Composer:
composer require amjadiqbal/filament-url-image-uploader
2. Add to your Form Schema:
use Amjadiqbal\FilamentUrlImageUploader\UrlImageUploader;
UrlImageUploader::make('image')
->directory('images');
3. Model Attribute Setup:
use Illuminate\Database\Eloquent\Casts\Attribute;
protected function image(): Attribute
{
return Attribute::make(
get: fn ($value) => $value,
set: fn ($value) => is_array($value) ? $value['image'] : $value,
);
}
🔗 Repositories & Links:
Filament Directory: URL Image Uploader Plugin Page
https://redd.it/1v1px6i
@r_php
If you're tired of forcing users to download remote images locally just to re-upload them into your admin panels, I built a custom form component that solves this exact friction: the **URL Image Uploader** package for FilamentPHP.
# ✨ Key Features
Direct Remote Imports: Instantly fetch and attach images directly from any public web link.
Built-in Preview: Gives users an immediate preview before saving to ensure the target URL is correct.
Laravel Storage Integration: Seamlessly saves files straight to your configured storage disk and path.
Image Validation: Validates the link to ensure it targets a readable image format.
Native Look & Feel: Fully compatible with Filament's UI, including dark mode and multilingual setups.
# 📦 Quick Setup & Usage
1. Install via Composer:
composer require amjadiqbal/filament-url-image-uploader
2. Add to your Form Schema:
use Amjadiqbal\FilamentUrlImageUploader\UrlImageUploader;
UrlImageUploader::make('image')
->directory('images');
3. Model Attribute Setup:
use Illuminate\Database\Eloquent\Casts\Attribute;
protected function image(): Attribute
{
return Attribute::make(
get: fn ($value) => $value,
set: fn ($value) => is_array($value) ? $value['image'] : $value,
);
}
🔗 Repositories & Links:
Filament Directory: URL Image Uploader Plugin Page
https://redd.it/1v1px6i
@r_php
Filamentphp
URL Image Uploader - Filament
A powerful Filament PHP form component that enables seamless image uploads from URLs. Features include image validation, preview functionality, and easy integration with Laravel storage. Perfect for remote image imports, content management, and e-commerce…
I extracted file-based routing into a standalone PHP package (works in Laravel and Symfony too)
A few weeks ago I posted a small framework here and got a lot of honest feedback. The clearest point, from several people, was that the file-based routing was the interesting part and would be more useful as a standalone library than baked into a whole framework. So I built that.
The part I think is actually useful: it's framework-agnostic. It runs standalone, but there are thin adapters so it plugs into Laravel (registers as native routes, inherits middleware/container) or Symfony (as a custom route loader, uses Symfony's own matcher and cache). So you can get file-based routing without adopting a new framework.
It's tested across PHP 8.1–8.5, and the migrations in the example template are verified on SQLite, MySQL and Postgres (not assumed; actually run end to end).
Repo: github.com/lizzyman04/file-router
Genuinely looking for feedback again, especially on the adapter approach. Does registering into the host framework's own router feel right to you, or would you expect it to work differently?
https://redd.it/1v2m919
@r_php
A few weeks ago I posted a small framework here and got a lot of honest feedback. The clearest point, from several people, was that the file-based routing was the interesting part and would be more useful as a standalone library than baked into a whole framework. So I built that.
file-router is a zero-dependency package that maps your directory structure to routes, Next.js style: users/[id].php → /users/{id}, [...slug] for catch-all, route groups, compiled route cache. PHP 8.1+.The part I think is actually useful: it's framework-agnostic. It runs standalone, but there are thin adapters so it plugs into Laravel (registers as native routes, inherits middleware/container) or Symfony (as a custom route loader, uses Symfony's own matcher and cache). So you can get file-based routing without adopting a new framework.
It's tested across PHP 8.1–8.5, and the migrations in the example template are verified on SQLite, MySQL and Postgres (not assumed; actually run end to end).
Repo: github.com/lizzyman04/file-router
Genuinely looking for feedback again, especially on the adapter approach. Does registering into the host framework's own router feel right to you, or would you expect it to work differently?
https://redd.it/1v2m919
@r_php
Reddit
From the PHP community on Reddit: I built a zero-dependency PHP framework with file-based routing — would appreciate a critique
Explore this post and more from the PHP community
Pure PHP web+socket server, serves 10x more concurrent PHP than NginX+FPM
# Qbix Server
Yesterday, I posted on Reddit about a web server I launched that's written in pure userland PHP, managed its own preforked workers, and removed the need for NGINX and PHP-FPM.
It was already able to run 10x more concurrent workers (e.g. 1600 workers on an 8GB server).
The biggest bottleneck in PHP hosting is \*memory\*. Each php-fpm worker loads your entire framework independently: 30–60MB per worker. On an 8GB server, that's \~160 workers max. That's your ceiling for concurrent PHP requests.
Well, Qbix Server forks workers \*after\* preloading your classes. Thanks to copy-on-write from the operating system, all that shared code (framework, config, autoloader) uses memory only once. Each worker adds maybe 3-6MB for its per-request data.
This means you get to run 10x more workers, and each worker actually loads much \*faster\* because you don't have to bootstrap your entire framework, config, etc. on every request.
[**https://github.com/Qbix/webserver**](https://github.com/Qbix/webserver)
# But wait... it got faster.
Yesterday, some people were complaining that a userland-PHP server was "only" 70% as fast as NGINX for serving static files. Well, it's 24 hours later, and I'm back, baby! After caching more, it turns out that it's now 25-35% FASTER than NGINX even for static files (as long as you keepalive connections).
Don't believe me? Run the benchmarks. It comes with a test suite now.
# But wait... it now supports sockets
Yes, it is wire-compatible with [socket.io](https://socket.io), and bundles it out of the box (no need for npm). Now you can just drop PHP files into folders, in order to:
1. Handle HTTP Requests. (Cleanup after request is handled.)
2. Handle Web Sockets. (Long-lived, cleanup after disconnect.)
3. Handle Rooms. (Long-lived, cleanup after last websocket leaves.)
In my opinion, the coolest thing is that this retains all the things that made PHP great:
1. Shared-nothing. No way to have memory or secrets leak between requests.
2. Normie-friendly. Just drop files into folders and things just work! No need for hot-reload even. Not even for websockets and rooms -- the old handler will work for the old connections, while the new one is loaded for the new ones.
3. Sequential processing, sure it means you occasionally miss out on fanning out concurrent I/O races, but it's much easier to understand the code.
Give it a try! It's MIT licensed. Enjoy 😄
**Who this is for:**
* PHP Developers who want to host things
* Normies who don't want to install and configure apache/nginx/varnish/go/ssl certificates/mysql/etc.
* People who just get the standalone binary and can host on their computer, without the internet even.
This was taken from the much larger all-in-one PHP platform:
[**https://github.com/Qbix/Platform**](https://github.com/Qbix/Platform)
https://redd.it/1v2xe3w
@r_php
# Qbix Server
Yesterday, I posted on Reddit about a web server I launched that's written in pure userland PHP, managed its own preforked workers, and removed the need for NGINX and PHP-FPM.
It was already able to run 10x more concurrent workers (e.g. 1600 workers on an 8GB server).
The biggest bottleneck in PHP hosting is \*memory\*. Each php-fpm worker loads your entire framework independently: 30–60MB per worker. On an 8GB server, that's \~160 workers max. That's your ceiling for concurrent PHP requests.
Well, Qbix Server forks workers \*after\* preloading your classes. Thanks to copy-on-write from the operating system, all that shared code (framework, config, autoloader) uses memory only once. Each worker adds maybe 3-6MB for its per-request data.
This means you get to run 10x more workers, and each worker actually loads much \*faster\* because you don't have to bootstrap your entire framework, config, etc. on every request.
[**https://github.com/Qbix/webserver**](https://github.com/Qbix/webserver)
# But wait... it got faster.
Yesterday, some people were complaining that a userland-PHP server was "only" 70% as fast as NGINX for serving static files. Well, it's 24 hours later, and I'm back, baby! After caching more, it turns out that it's now 25-35% FASTER than NGINX even for static files (as long as you keepalive connections).
Don't believe me? Run the benchmarks. It comes with a test suite now.
# But wait... it now supports sockets
Yes, it is wire-compatible with [socket.io](https://socket.io), and bundles it out of the box (no need for npm). Now you can just drop PHP files into folders, in order to:
1. Handle HTTP Requests. (Cleanup after request is handled.)
2. Handle Web Sockets. (Long-lived, cleanup after disconnect.)
3. Handle Rooms. (Long-lived, cleanup after last websocket leaves.)
In my opinion, the coolest thing is that this retains all the things that made PHP great:
1. Shared-nothing. No way to have memory or secrets leak between requests.
2. Normie-friendly. Just drop files into folders and things just work! No need for hot-reload even. Not even for websockets and rooms -- the old handler will work for the old connections, while the new one is loaded for the new ones.
3. Sequential processing, sure it means you occasionally miss out on fanning out concurrent I/O races, but it's much easier to understand the code.
Give it a try! It's MIT licensed. Enjoy 😄
**Who this is for:**
* PHP Developers who want to host things
* Normies who don't want to install and configure apache/nginx/varnish/go/ssl certificates/mysql/etc.
* People who just get the standalone binary and can host on their computer, without the internet even.
This was taken from the much larger all-in-one PHP platform:
[**https://github.com/Qbix/Platform**](https://github.com/Qbix/Platform)
https://redd.it/1v2xe3w
@r_php
There's no pyenv/nvm equivalent for PHP that works out of the box, so I built one
I wanted something like pyenv or nvm but for PHP. Couldn't find one that actually works the way those do — resolve deps, build from source, switch versions cleanly. The existing options either wrap pre-built binaries or half-ass the dependency resolution.
So I built phpv: https://github.com/supanadit/phpv
`phpv install 8.4` checks your system, builds whatever deps are missing from source, compiles PHP with the right flags. 25 default extensions, out of the box. Supports PHP 4.x through 8.x, version switching, per-project pinning via .php-version, PECL extensions, PHAR tools, portable bundles you can export and import across machines. Linux amd64/arm64 + macOS Intel/Apple Silicon.
Install:
curl -fsSL https://raw.githubusercontent.com/supanadit/phpv/main/install.sh | bash
Then:
eval "$(phpv init bash)"
phpv install 8
Honest con: it compiles from source, so first install is slow. There's no pre-built PHP binary cache yet — working on portable musl-static bundles so you can skip compiling entirely, but that's not done. What's there now works, it just takes a few minutes on first run.
It works. I've been using it on Ubuntu and macOS daily. But I know there are distros and edge cases I haven't hit — Alpine, Arch, weird setups. If you're on any of those, try it and file an issue if it breaks. I want to know.
Repo: https://github.com/supanadit/phpv
Issues: https://github.com/supanadit/phpv/issues
Break it and tell me.
https://redd.it/1v3cmd4
@r_php
I wanted something like pyenv or nvm but for PHP. Couldn't find one that actually works the way those do — resolve deps, build from source, switch versions cleanly. The existing options either wrap pre-built binaries or half-ass the dependency resolution.
So I built phpv: https://github.com/supanadit/phpv
`phpv install 8.4` checks your system, builds whatever deps are missing from source, compiles PHP with the right flags. 25 default extensions, out of the box. Supports PHP 4.x through 8.x, version switching, per-project pinning via .php-version, PECL extensions, PHAR tools, portable bundles you can export and import across machines. Linux amd64/arm64 + macOS Intel/Apple Silicon.
Install:
curl -fsSL https://raw.githubusercontent.com/supanadit/phpv/main/install.sh | bash
Then:
eval "$(phpv init bash)"
phpv install 8
Honest con: it compiles from source, so first install is slow. There's no pre-built PHP binary cache yet — working on portable musl-static bundles so you can skip compiling entirely, but that's not done. What's there now works, it just takes a few minutes on first run.
It works. I've been using it on Ubuntu and macOS daily. But I know there are distros and edge cases I haven't hit — Alpine, Arch, weird setups. If you're on any of those, try it and file an issue if it breaks. I want to know.
Repo: https://github.com/supanadit/phpv
Issues: https://github.com/supanadit/phpv/issues
Break it and tell me.
https://redd.it/1v3cmd4
@r_php
GitHub
GitHub - supanadit/phpv: PHP Version Manager
PHP Version Manager. Contribute to supanadit/phpv development by creating an account on GitHub.