PHP - Still a Powerhouse for Web Dev in 2025
I really don’t like hearing “is PHP still alive”, I really don’t. I think we should move to just saying that it is. Paweł Cierzniakowski's recent article is a good example of that. Covering topics like:
Modern Features: PHP 8.X brings stuff like union types, enums, and property hooks, making code safer and cleaner.
Frameworks: Laravel and Symfony are rock-solid for building APIs, queues, or real-time apps.
Real-World Use: Big players like Slack and Tumblr lean on PHP for high-traffic systems. (In the fallout of the article I’ve been hearing that Slack is not using the PHP as of today, but i have found their article [on using Hack with the PHP as of 2023](https://slack.engineering/hakana-taking-hack-seriously/), so let me know if you have some fresher information)
Community: The PHP Foundation, backed by JetBrains and Laravel, keeps the language secure and future-proof.
When I was chatting with Roman Pronskiy we both agreed that it’s time for the community to move away from trying to justify the existence of PHP, and start giving it credit where it’s due. I think that will be beneficial for the whole community. If you want to check the full article you can do it here: https://accesto.com/blog/evaluating-modern-php/
https://redd.it/1m0co77
@r_php
I really don’t like hearing “is PHP still alive”, I really don’t. I think we should move to just saying that it is. Paweł Cierzniakowski's recent article is a good example of that. Covering topics like:
Modern Features: PHP 8.X brings stuff like union types, enums, and property hooks, making code safer and cleaner.
Frameworks: Laravel and Symfony are rock-solid for building APIs, queues, or real-time apps.
Real-World Use: Big players like Slack and Tumblr lean on PHP for high-traffic systems. (In the fallout of the article I’ve been hearing that Slack is not using the PHP as of today, but i have found their article [on using Hack with the PHP as of 2023](https://slack.engineering/hakana-taking-hack-seriously/), so let me know if you have some fresher information)
Community: The PHP Foundation, backed by JetBrains and Laravel, keeps the language secure and future-proof.
When I was chatting with Roman Pronskiy we both agreed that it’s time for the community to move away from trying to justify the existence of PHP, and start giving it credit where it’s due. I think that will be beneficial for the whole community. If you want to check the full article you can do it here: https://accesto.com/blog/evaluating-modern-php/
https://redd.it/1m0co77
@r_php
Engineering at Slack
Hakana: Taking Hack Seriously - Engineering at Slack
TL; DR: We’re announcing a new open source type checker for Hack, called Hakana. Slack launched in 2014, built with a lot of love and also a lot of PHP code. We started migrating to a different language called Hack in 2016. Hack was created by Facebook after…
Everything that is coming in PHP 8.5
https://amitmerchant.com/everything-that-is-coming-in-php-85/
https://redd.it/1m0eq8d
@r_php
https://amitmerchant.com/everything-that-is-coming-in-php-85/
https://redd.it/1m0eq8d
@r_php
Amit Merchant
Everything that is coming in PHP 8.5
As every year, we will have the new version of PHP this year too, which is PHP 8.5. It’s the minor version in the PHP 8 line, and the version will be released later this year. Let’s discuss everything that has been added in PHP 8.5 so far.
DHH on PHP: It changed my life
https://www.youtube.com/watch?v=lAXvkYu2qGs
https://redd.it/1m0eycg
@r_php
https://www.youtube.com/watch?v=lAXvkYu2qGs
https://redd.it/1m0eycg
@r_php
YouTube
DHH on PHP: It changed my life | Lex Fridman Podcast Clips
Lex Fridman Podcast full episode: https://www.youtube.com/watch?v=vagyIcmIGOQ
Thank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/cv8998-sb
See below for guest bio, links, and to give feedback, submit questions, contact Lex,…
Thank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/cv8998-sb
See below for guest bio, links, and to give feedback, submit questions, contact Lex,…
Symfony CLI - Error remove log inside .symfony5\log
Hi !
I'm developping on Symfony for a while and since i'm on Symfony CLI 5.12.0, I can't run the local dev webserver because of this error :
Can someone help me ? I tried to delete the file but it is recreated each time i run the
https://redd.it/1m0h7vz
@r_php
Hi !
I'm developping on Symfony for a while and since i'm on Symfony CLI 5.12.0, I can't run the local dev webserver because of this error :
PS E:\\<some folder> symfony serve -d
remove C:\\Users\\<user>\\.symfony5\\log\\5af26511ec3b976af1990d6abf208be50b786ab8.log: The process cannot access the file because it is being used by another process.
Can someone help me ? I tried to delete the file but it is recreated each time i run the
symfony serve -d commandhttps://redd.it/1m0h7vz
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
Request-Interop Now Open For Public Review
https://pmjones.io/post/2025/07/15/request-interop-now-open-for-public-review/
https://redd.it/1m0ho28
@r_php
https://pmjones.io/post/2025/07/15/request-interop-now-open-for-public-review/
https://redd.it/1m0ho28
@r_php
Big news! Larasense is now open source!
Larasense brings together the latest Laravel articles, YouTube videos, and podcasts from credible sources we all know and love. No distractions. Just Laravel.
Whether you're a beginner or seasoned developer, Larasense helps you stay up-to-date without hopping between platforms.
Would love your feedback and contributions.
Let’s build this together the Laravel way. ❤️
Distraction-free. Just Laravel. Community-powered.
🌐 larasense.com
🔗 github.com/nabilhassen/larasense
https://redd.it/1m0jcf7
@r_php
Larasense brings together the latest Laravel articles, YouTube videos, and podcasts from credible sources we all know and love. No distractions. Just Laravel.
Whether you're a beginner or seasoned developer, Larasense helps you stay up-to-date without hopping between platforms.
Would love your feedback and contributions.
Let’s build this together the Laravel way. ❤️
Distraction-free. Just Laravel. Community-powered.
🌐 larasense.com
🔗 github.com/nabilhassen/larasense
https://redd.it/1m0jcf7
@r_php
Larasense
Larasense - Your Hub for Laravel News, Trends & Updates
Stay updated on Laravel news, trends, and updates with curated content from top blogs, YouTube, and podcasts—all in a sleek, user-friendly design.
Seeming lack of major apps built on Laravel, vs RoR and Django?
I'm curious why this might be.
I've been a huge fan of Laravel since discovering it within the last 2 years. If at all possible I nudge my clients towards using it rather than NextJS.
I've recently been on a project with a couple of other devs, and it was a vibe coded NextJS app that got handed to us, just a complete mess. We all fantasized about burning it all down and rewriting it, and the topic of different frameworks came up.
I've played around very briefly with RoR and Django in the past, but never made a serious project with them.
If I look at the various "builtwith" directories, I see quite a few mega projects on those frameworks, famously Github and Shopify were built on RoR. It looks like Instagram, Spotify, Disqus, Dropbox... were built on Django.
When I look for similar examples built on Laravel, they're notably absent. The best I seem to find is that companies like Pfizer and BBC use them internally as parts of their stacks.
What do you all think the reason for this is?
I know that RoR was the OG, and got really popular during the right time in the tech boom, so that's well enough explained, but the fact that by now Laravel doesn't have a notable example of an app in the same tier as the rest mentioned is kind of interesting.
https://redd.it/1m0lgq0
@r_php
I'm curious why this might be.
I've been a huge fan of Laravel since discovering it within the last 2 years. If at all possible I nudge my clients towards using it rather than NextJS.
I've recently been on a project with a couple of other devs, and it was a vibe coded NextJS app that got handed to us, just a complete mess. We all fantasized about burning it all down and rewriting it, and the topic of different frameworks came up.
I've played around very briefly with RoR and Django in the past, but never made a serious project with them.
If I look at the various "builtwith" directories, I see quite a few mega projects on those frameworks, famously Github and Shopify were built on RoR. It looks like Instagram, Spotify, Disqus, Dropbox... were built on Django.
When I look for similar examples built on Laravel, they're notably absent. The best I seem to find is that companies like Pfizer and BBC use them internally as parts of their stacks.
What do you all think the reason for this is?
I know that RoR was the OG, and got really popular during the right time in the tech boom, so that's well enough explained, but the fact that by now Laravel doesn't have a notable example of an app in the same tier as the rest mentioned is kind of interesting.
https://redd.it/1m0lgq0
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
Symfony CLI server:start not working anymore - "File not Found"
I have this weird issue that suddenly, symfony cli does not seem to serve public/index.php anymore (Windows, using Ubuntu WLS). I don't remember to have changed anything. I tried removing the .symfony5 folder and reinstalling the binary; I tried using symfony-cli supplied via debian package.
* Standard symfony webpack installation (it does not work in a freshly created folder, either)
* php-fpm (8.4.10) is installed
* Passthru seems to be recognized - there is no error message in contrast to a random folder with no public/index.php
* index.html is served as expected if present
* Accessing any other file (including public/index.php) ends with "File not found"
* Serving the website via php-cli works fine
* Explicitly giving project configuration (`symfony server:start --passthru index.php --document-root public --dir .`) also does not help
I'm a bit at loss on what else to try.
# symfony server:start
Following Web Server log file (/root/.symfony5/log/600d76d15db491de553c950de70d7cd3bac76916.log)
Following PHP-FPM log file (/root/.symfony5/log/600d76d15db491de553c950de70d7cd3bac76916/53fb8ec204547646acb3461995e4da5a54cc7575.log)
[WARNING] The local web server is optimized for local development and MUST never be used in a production setup.
[WARNING] Please note that the Symfony CLI only listens on 127.0.0.1 by default since version 5.10.3.
You can use the --allow-all-ip or --listen-ip flags to change this behavior.
[OK] Web server listening
The Web server is using PHP FPM 8.4.10
https://127.0.0.1:8000
[Web Server ] Jul 15 19:11:56 |DEBUG | PHP Reloading PHP versions
[Web Server ] Jul 15 19:11:56 |DEBUG | PHP Using PHP version 8.4.10 (from default version in $PATH)
[...] logs from former run omitted
[Web Server ] Jul 15 19:11:56 |INFO | PHP listening path="/usr/sbin/php-fpm8.4" php="8.4.10" port=44915
[Web Server ] Jul 15 19:11:56 |DEBUG | PHP Using PHP version 8.4.10 (from default version in $PATH)
[PHP-FPM ] Jul 15 19:11:56 |DEBUG | RUNNER Waiting for channels (first boot) cmd="PHP-FPM"
[PHP-FPM ] Jul 15 19:11:56 |WARNING| FPM JIT is incompatible with third party extensions that override zend_execute_ex(). JIT disabled. in Unknown on line 0
[PHP-FPM ] Jul 15 19:11:56 |NOTICE | FPM fpm is running, pid 124910
[PHP-FPM ] Jul 15 19:11:56 |NOTICE | FPM ready to handle connections
[PHP-FPM ] Jul 15 19:11:56 |NOTICE | FPM systemd monitor interval set to 10000ms
[PHP-FPM ] Jul 15 19:11:58 |DEBUG | RUNNER Received timer message (first boot) cmd="PHP-FPM"
2025/07/15 19:12:09 http: TLS handshake error from 127.0.0.1:45400: remote error: tls: unknown certificate authority
2025/07/15 19:12:09 http: TLS handshake error from 127.0.0.1:45402: remote error: tls: unknown certificate authority
[Web Server ] Jul 15 19:12:15 |INFO | SERVER GET (200) /index.php ip="127.0.0.1"
[Web Server ] Jul 15 19:12:15 |INFO | SERVER GET (200) /favicon.ico
[Web Server ] Jul 15 19:12:18 |INFO | SERVER GET (200) /index.php
What am I missing?
https://redd.it/1m0nwst
@r_php
I have this weird issue that suddenly, symfony cli does not seem to serve public/index.php anymore (Windows, using Ubuntu WLS). I don't remember to have changed anything. I tried removing the .symfony5 folder and reinstalling the binary; I tried using symfony-cli supplied via debian package.
* Standard symfony webpack installation (it does not work in a freshly created folder, either)
* php-fpm (8.4.10) is installed
* Passthru seems to be recognized - there is no error message in contrast to a random folder with no public/index.php
* index.html is served as expected if present
* Accessing any other file (including public/index.php) ends with "File not found"
* Serving the website via php-cli works fine
* Explicitly giving project configuration (`symfony server:start --passthru index.php --document-root public --dir .`) also does not help
I'm a bit at loss on what else to try.
# symfony server:start
Following Web Server log file (/root/.symfony5/log/600d76d15db491de553c950de70d7cd3bac76916.log)
Following PHP-FPM log file (/root/.symfony5/log/600d76d15db491de553c950de70d7cd3bac76916/53fb8ec204547646acb3461995e4da5a54cc7575.log)
[WARNING] The local web server is optimized for local development and MUST never be used in a production setup.
[WARNING] Please note that the Symfony CLI only listens on 127.0.0.1 by default since version 5.10.3.
You can use the --allow-all-ip or --listen-ip flags to change this behavior.
[OK] Web server listening
The Web server is using PHP FPM 8.4.10
https://127.0.0.1:8000
[Web Server ] Jul 15 19:11:56 |DEBUG | PHP Reloading PHP versions
[Web Server ] Jul 15 19:11:56 |DEBUG | PHP Using PHP version 8.4.10 (from default version in $PATH)
[...] logs from former run omitted
[Web Server ] Jul 15 19:11:56 |INFO | PHP listening path="/usr/sbin/php-fpm8.4" php="8.4.10" port=44915
[Web Server ] Jul 15 19:11:56 |DEBUG | PHP Using PHP version 8.4.10 (from default version in $PATH)
[PHP-FPM ] Jul 15 19:11:56 |DEBUG | RUNNER Waiting for channels (first boot) cmd="PHP-FPM"
[PHP-FPM ] Jul 15 19:11:56 |WARNING| FPM JIT is incompatible with third party extensions that override zend_execute_ex(). JIT disabled. in Unknown on line 0
[PHP-FPM ] Jul 15 19:11:56 |NOTICE | FPM fpm is running, pid 124910
[PHP-FPM ] Jul 15 19:11:56 |NOTICE | FPM ready to handle connections
[PHP-FPM ] Jul 15 19:11:56 |NOTICE | FPM systemd monitor interval set to 10000ms
[PHP-FPM ] Jul 15 19:11:58 |DEBUG | RUNNER Received timer message (first boot) cmd="PHP-FPM"
2025/07/15 19:12:09 http: TLS handshake error from 127.0.0.1:45400: remote error: tls: unknown certificate authority
2025/07/15 19:12:09 http: TLS handshake error from 127.0.0.1:45402: remote error: tls: unknown certificate authority
[Web Server ] Jul 15 19:12:15 |INFO | SERVER GET (200) /index.php ip="127.0.0.1"
[Web Server ] Jul 15 19:12:15 |INFO | SERVER GET (200) /favicon.ico
[Web Server ] Jul 15 19:12:18 |INFO | SERVER GET (200) /index.php
What am I missing?
https://redd.it/1m0nwst
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
Some PHPStorm discount coupons. 20% Off
1. SDFUY-7AWUL-ED5GF-V387A-8G8LV
2. FWR2Z-AE85B-H8DQN-G343W-R4D6T
https://redd.it/1m0ovau
@r_php
1. SDFUY-7AWUL-ED5GF-V387A-8G8LV
2. FWR2Z-AE85B-H8DQN-G343W-R4D6T
https://redd.it/1m0ovau
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Filter Eloquent models via URL query strings
Hi r/laravel 👋
I've built a package to filter Eloquent models using URL query strings. The package is goodcat/laravel-querystring. I was inspired by Laravel's Local Scope. I'm using the attribute
// http://example.com/users?email=john@doe.com
class User extends Authenticatable
{
use UseQueryString;
#QueryString('email')
public function filterByEmail(Builder $query, string $search): void
{
$query->where('email', $search);
}
}
I’m adding the
class UserController extends Controller
{
public function index(Request $request): View
{
$users = User::query()->queryString($request)->get();
return view('user.index', 'users' => $users);
}
}
Inside the query, I'm using the
There are other functionalities like caching, custom filter objects, multiple
https://redd.it/1m0two7
@r_php
Hi r/laravel 👋
I've built a package to filter Eloquent models using URL query strings. The package is goodcat/laravel-querystring. I was inspired by Laravel's Local Scope. I'm using the attribute
#[QueryString] to tag a method as a "filter" and the Reflection API to map the query string name to the filter. Here's an example:// http://example.com/users?email=john@doe.com
class User extends Authenticatable
{
use UseQueryString;
#QueryString('email')
public function filterByEmail(Builder $query, string $search): void
{
$query->where('email', $search);
}
}
I’m adding the
UseQueryString trait to the User model and marking a method with the QueryString attribute.class UserController extends Controller
{
public function index(Request $request): View
{
$users = User::query()->queryString($request)->get();
return view('user.index', 'users' => $users);
}
}
Inside the query, I'm using the
queryString($request) scope, passing it the request. The query string is automatically mapped to the method, and the filter we wrote earlier is applied. I'm really curious to know what you think!There are other functionalities like caching, custom filter objects, multiple
QueryString attributes, etc.https://redd.it/1m0two7
@r_php
GitHub
GitHub - goodcat-dev/laravel-querystring: A Laravel package to filter Eloquent models using query string parameters.
A Laravel package to filter Eloquent models using query string parameters. - goodcat-dev/laravel-querystring
PHP Async lib without extensions and concurrent libs
https://github.com/terremoth/php-async
https://redd.it/1m0vg6k
@r_php
https://github.com/terremoth/php-async
https://redd.it/1m0vg6k
@r_php
GitHub
GitHub - terremoth/php-async: Async and Parallel Processing with PHP with no threads or reactive libs
Async and Parallel Processing with PHP with no threads or reactive libs - terremoth/php-async
Thinking of building a faster PHP VM, curious what you think about dropping some dynamic features
I'm working on a side project, still early, where I'm exploring the idea of building a faster PHP VM written in Rust, with a strong focus on performance and memory efficiency, especially for server-side use.
I'm not aiming to replace PHP or reinvent the language, and I would like it to remain compatible with regular PHP code as much as possible.
That said, I’m seriously considering dropping or restricting some of PHP’s most dynamic features, because I believe the potential performance gains could be significant.
For example:
* No *variable variables* (`$$var`)
* Requiring static paths in `include()`/`require()`
* Disallowing `eval()`
Removing these might allow for:
* Much better memory management (e.g. tracking variable lifetimes and avoiding unnecessary copies)
* Optimizations like early freeing or move semantics
* Easier static analysis and faster bytecode execution
So I’m wondering:
* Would this kind of approach make sense to you?
* Are those dynamic features essential in your real-world usage?
* Do you think a faster VM with these trade-offs would be useful?
I’d really appreciate any thoughts or perspectives from PHP developers.
https://redd.it/1m0z3eg
@r_php
I'm working on a side project, still early, where I'm exploring the idea of building a faster PHP VM written in Rust, with a strong focus on performance and memory efficiency, especially for server-side use.
I'm not aiming to replace PHP or reinvent the language, and I would like it to remain compatible with regular PHP code as much as possible.
That said, I’m seriously considering dropping or restricting some of PHP’s most dynamic features, because I believe the potential performance gains could be significant.
For example:
* No *variable variables* (`$$var`)
* Requiring static paths in `include()`/`require()`
* Disallowing `eval()`
Removing these might allow for:
* Much better memory management (e.g. tracking variable lifetimes and avoiding unnecessary copies)
* Optimizations like early freeing or move semantics
* Easier static analysis and faster bytecode execution
So I’m wondering:
* Would this kind of approach make sense to you?
* Are those dynamic features essential in your real-world usage?
* Do you think a faster VM with these trade-offs would be useful?
I’d really appreciate any thoughts or perspectives from PHP developers.
https://redd.it/1m0z3eg
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Building "Lovable for Laravel" - would love your feedback
Hey everyone,
I'm working on ArtisanKit - essentially Lovable.dev but specifically for Laravel developers.
The idea is simple: describe your app in plain English, get a working Laravel application. No more starting from scratch or dealing with boilerplate. Just chat with AI about what you want to build.
It generates:
\- Laravel 12 backend with proper patterns
\- React/Vue + TypeScript frontend
\- Database migrations and models
\- Full authentication flow
\- Ready to deploy
What makes it different from generic AI tools is that it actually understands Laravel conventions and best practices. It builds apps the way a senior Laravel developer would.
I'd love to get feedback from the community:
1. What features would actually be useful vs just hype?
2. What's your biggest pain point when usign AI coding agents with Laravel?
3. Would you use something like this?
If you're interested in trying it when it launches, I set up a waitlist at artisankit.ai
Not trying to spam - genuinely want to build something useful for our community. Happy to answer any questions!
https://redd.it/1m13pg5
@r_php
Hey everyone,
I'm working on ArtisanKit - essentially Lovable.dev but specifically for Laravel developers.
The idea is simple: describe your app in plain English, get a working Laravel application. No more starting from scratch or dealing with boilerplate. Just chat with AI about what you want to build.
It generates:
\- Laravel 12 backend with proper patterns
\- React/Vue + TypeScript frontend
\- Database migrations and models
\- Full authentication flow
\- Ready to deploy
What makes it different from generic AI tools is that it actually understands Laravel conventions and best practices. It builds apps the way a senior Laravel developer would.
I'd love to get feedback from the community:
1. What features would actually be useful vs just hype?
2. What's your biggest pain point when usign AI coding agents with Laravel?
3. Would you use something like this?
If you're interested in trying it when it launches, I set up a waitlist at artisankit.ai
Not trying to spam - genuinely want to build something useful for our community. Happy to answer any questions!
https://redd.it/1m13pg5
@r_php
lovable.dev
Lovable - Build Apps & Websites with AI, Fast | No Code App Builder
Lovable is an AI app and website builder that turns ideas into production-ready software without coding. Launch faster with AI.
Anyone using Laravel Octane with FrankenPHP on production?
So we are evaluating production deployments for our distributed system and at the moment are considering serversideup nginx images or FrankenPHP. Our systems has to handle traffic from on average 5-10k IoT devices per cluster. It's a distributed micro-service system. We haven't done any benchmark at our end for both and serversideup images are our fallback option; So wondering if anyone has been running FrankenPHP in production and has there been any issues or so?
https://redd.it/1m15i3a
@r_php
So we are evaluating production deployments for our distributed system and at the moment are considering serversideup nginx images or FrankenPHP. Our systems has to handle traffic from on average 5-10k IoT devices per cluster. It's a distributed micro-service system. We haven't done any benchmark at our end for both and serversideup images are our fallback option; So wondering if anyone has been running FrankenPHP in production and has there been any issues or so?
https://redd.it/1m15i3a
@r_php
PHP Docker Images (serversideup/php)
Production-ready PHP Docker images for Laravel, WordPress, and more.
Messenger retry without config permission in Rabbit
As the noscript says, I need to configure retry without access to creating new queues (I can still create them manually in the dashboard).
Is there a way to implement retries on predefined queues? Or maybe there is another solution that I haven't considered?
Symfony 7.3
https://redd.it/1m16f9j
@r_php
As the noscript says, I need to configure retry without access to creating new queues (I can still create them manually in the dashboard).
Is there a way to implement retries on predefined queues? Or maybe there is another solution that I haven't considered?
Symfony 7.3
https://redd.it/1m16f9j
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
TrueAsync Chronicles
Hi everyone,
A lot has happened since the first announcement of the TrueAsync RFC. And now, with the first alpha release of the extension out and the official RFC for core changes published, it’s a good moment to share an update.
Why hasn’t the current RFC been put up for a vote yet?
Digging through documents from other programming languages, forum posts, and working group notes, it became clear that no language has managed to design a good async API on the first try.
It’s not just about complexity—it’s that solutions which seem good initially often don’t hold up in practice.
Even if a single person made the final decision, the first attempt would likely have serious flaws. It’s a bit like Fred Brooks’ idea in The Mythical Man-Month: “Build one to throw away.” So I’ve concluded that trying to rush an RFC — even “fast enough” — would be a mistake, even if we had five or seven top-level experts available.
So what’s the plan?
Here the PHP community (huge thanks to everyone involved!) and the PHP core team came through with a better idea: releasing an experimental version is far preferable to aiming for a fully polished RFC up front. The strategy now is:
1. Allow people to try async in PHP under experimental status.
2. Once enough experience is gathered, finalize the RFC.
Development has split into two repos: https://github.com/true-async:
1. PHP itself and the low-level engine API.
2. A separate extension that implements this API.
This split lets PHP’s core evolve independently from specific functions like spawn/await. That’s great news because it enables progress even before the RFC spec is locked in.
As a result, there’s now a separate RFC focused just on core engine changes: https://wiki.php.net/rfc/true\_async\_engine\_api
If the proposed API code is accepted in full, PHP 8.5 would include all the features currently found in the TrueAsync extension. But in the meantime, you can try it out in Docker: https://github.com/true-async/php-async/blob/main/Dockerfile
I firmly believe that early access to new features is a crucial design tool in software engineering. So a prebuilt Windows binary will be available soon (it basically exists already but needs some polishing!).
What’s under the hood of the TrueAsync extension?
TrueAsync ext uses LibUV 1.44+ and PHP fibers (via C code) to implement coroutines.
Fibers enable transparent async support without breaking existing code. You can call
The scheduler algorithm has been completely redesigned to halve the number of context switches. Coroutines can “jump” directly into any other coroutine from virtually any place — even deep inside C code. You can break the execution flow however and whenever you want, and resume under any conditions you choose. This is exactly what adapted C functions like
Of course, the TrueAsync extension also lets you do this explicitly with the
The current list of adapted PHP functions that perform context switches is available here:
https://github.com/true-async/php-async?tab=readme-ov-file#adapted-php-functions
It’s already quite enough to build plenty of useful things. This even includes functions like
And you can try all of this out today. :)
https://redd.it/1m18m4c
@r_php
Hi everyone,
A lot has happened since the first announcement of the TrueAsync RFC. And now, with the first alpha release of the extension out and the official RFC for core changes published, it’s a good moment to share an update.
Why hasn’t the current RFC been put up for a vote yet?
Digging through documents from other programming languages, forum posts, and working group notes, it became clear that no language has managed to design a good async API on the first try.
It’s not just about complexity—it’s that solutions which seem good initially often don’t hold up in practice.
Even if a single person made the final decision, the first attempt would likely have serious flaws. It’s a bit like Fred Brooks’ idea in The Mythical Man-Month: “Build one to throw away.” So I’ve concluded that trying to rush an RFC — even “fast enough” — would be a mistake, even if we had five or seven top-level experts available.
So what’s the plan?
Here the PHP community (huge thanks to everyone involved!) and the PHP core team came through with a better idea: releasing an experimental version is far preferable to aiming for a fully polished RFC up front. The strategy now is:
1. Allow people to try async in PHP under experimental status.
2. Once enough experience is gathered, finalize the RFC.
Development has split into two repos: https://github.com/true-async:
1. PHP itself and the low-level engine API.
2. A separate extension that implements this API.
This split lets PHP’s core evolve independently from specific functions like spawn/await. That’s great news because it enables progress even before the RFC spec is locked in.
As a result, there’s now a separate RFC focused just on core engine changes: https://wiki.php.net/rfc/true\_async\_engine\_api
If the proposed API code is accepted in full, PHP 8.5 would include all the features currently found in the TrueAsync extension. But in the meantime, you can try it out in Docker: https://github.com/true-async/php-async/blob/main/Dockerfile
I firmly believe that early access to new features is a crucial design tool in software engineering. So a prebuilt Windows binary will be available soon (it basically exists already but needs some polishing!).
What’s under the hood of the TrueAsync extension?
TrueAsync ext uses LibUV 1.44+ and PHP fibers (via C code) to implement coroutines.
Fibers enable transparent async support without breaking existing code. You can call
spawn literally anywhere — even inside register_shutdown_function() (although that’s arguably risky!). Meanwhile, regular functions keep working unchanged. In other words: no colored functions.The scheduler algorithm has been completely redesigned to halve the number of context switches. Coroutines can “jump” directly into any other coroutine from virtually any place — even deep inside C code. You can break the execution flow however and whenever you want, and resume under any conditions you choose. This is exactly what adapted C functions like
sleep() do: when you call sleep(), you’re implicitly switching your coroutine to another one.Of course, the TrueAsync extension also lets you do this explicitly with the
Async\suspend() function.The current list of adapted PHP functions that perform context switches is available here:
https://github.com/true-async/php-async?tab=readme-ov-file#adapted-php-functions
It’s already quite enough to build plenty of useful things. This even includes functions like
ob_start(), which correctly handle coroutine switching and can safely collect output from different functions concurrently.And you can try all of this out today. :)
https://redd.it/1m18m4c
@r_php
GitHub
True Async
Implementation of native asynchrony at the PHP core level - True Async
An educational look into the Tempest PHP framework
https://sevalla.com/blog/tempest-php/
https://redd.it/1m18s21
@r_php
https://sevalla.com/blog/tempest-php/
https://redd.it/1m18s21
@r_php
Sevalla
An educational look into the Tempest PHP framework
Discover how Tempest, a modern PHP framework, uses code discovery and the latest PHP features to simplify app development and boost productivity.
Short function
A new RFC about short function (here called Single-Expression functions) is currently in voting phase : https://wiki.php.net/rfc/single-expression-functions
About 5 years ago another RFC about the same syntax has been declined : https://wiki.php.net/rfc/short-functions
And the result is really mixed (from the previous RFC, the no is only sligthly ahead).
So, what do you think about this RFC, and change that can make PHP slightly less verbose, without introducing real features ?
Does complexifying the syntax is worth it if it can reduce the code size / give a more pleasant UX ?
https://redd.it/1m1bfad
@r_php
A new RFC about short function (here called Single-Expression functions) is currently in voting phase : https://wiki.php.net/rfc/single-expression-functions
About 5 years ago another RFC about the same syntax has been declined : https://wiki.php.net/rfc/short-functions
And the result is really mixed (from the previous RFC, the no is only sligthly ahead).
So, what do you think about this RFC, and change that can make PHP slightly less verbose, without introducing real features ?
Does complexifying the syntax is worth it if it can reduce the code size / give a more pleasant UX ?
https://redd.it/1m1bfad
@r_php
Zend PHP Certification Exam & Other Certifications Advice
Hello everybody, so I've been using PHP for six years, but I have no Bachelor's Degree or certifications outside of PHP Basics from W3 Schools. How I got my much, I have no idea, but I do good work and they like me. However, I'm trying to get some certs under my belt so perhaps I could find a higher paying position and be a better developer. My boss has agreed to purchase me the Zend PHP Certification Exam as he feels we could advertise the certification on the company website. I'm thrilled to add this to my resume and have begun studying. The resource I'm using is this.
https://github.com/ivantusek/Zend-PHP-Certification
It appears to be well done and legitimate and I'm making flashcards of all the questions so I can really study as well as for the few examples I don't understand, playing around with them on my local host until I have a thorough understanding. Is this enough? I would be so embarrassed to fail this exam on my bosses dime and then have to pay for it on my own and I don't want to ruin the chance for my boss to pay for more certifications (would like one in PHP Security). Any suggestions on how I can guarantee I pass the exam with flying colors? Hoping to take it at the end of August.
https://redd.it/1m1ecym
@r_php
Hello everybody, so I've been using PHP for six years, but I have no Bachelor's Degree or certifications outside of PHP Basics from W3 Schools. How I got my much, I have no idea, but I do good work and they like me. However, I'm trying to get some certs under my belt so perhaps I could find a higher paying position and be a better developer. My boss has agreed to purchase me the Zend PHP Certification Exam as he feels we could advertise the certification on the company website. I'm thrilled to add this to my resume and have begun studying. The resource I'm using is this.
https://github.com/ivantusek/Zend-PHP-Certification
It appears to be well done and legitimate and I'm making flashcards of all the questions so I can really study as well as for the few examples I don't understand, playing around with them on my local host until I have a thorough understanding. Is this enough? I would be so embarrassed to fail this exam on my bosses dime and then have to pay for it on my own and I don't want to ruin the chance for my boss to pay for more certifications (would like one in PHP Security). Any suggestions on how I can guarantee I pass the exam with flying colors? Hoping to take it at the end of August.
https://redd.it/1m1ecym
@r_php
GitHub
GitHub - ivantusek/Zend-PHP-Certification: Zend PHP Certification Study Guide.
Zend PHP Certification Study Guide. Contribute to ivantusek/Zend-PHP-Certification development by creating an account on GitHub.
Boost Your Productivity: PHP DataGrid with AI Assistant!
Hey devs! I just launched a new feature on GridPHP — an AI-powered assistant built right into the PHP DataGrid.
It helps you:
✔ Get instant summaries and reports from your DataGrid
✔ Ask complex queries and receive smart insights
✔ Automate analysis without writing complex SQL queries
✔ Provide smart suggestions for better data analysis
No complex setup — just plug it in and start working smarter.
Would love feedback from the community! 🙌
Check it out: https://www.gridphp.com/datagrid-ai-assistant/
https://redd.it/1m1w9l3
@r_php
Hey devs! I just launched a new feature on GridPHP — an AI-powered assistant built right into the PHP DataGrid.
It helps you:
✔ Get instant summaries and reports from your DataGrid
✔ Ask complex queries and receive smart insights
✔ Automate analysis without writing complex SQL queries
✔ Provide smart suggestions for better data analysis
No complex setup — just plug it in and start working smarter.
Would love feedback from the community! 🙌
Check it out: https://www.gridphp.com/datagrid-ai-assistant/
https://redd.it/1m1w9l3
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
What Modern PHP Looks Like in 2025
https://amirkamizi.com/blog/what-modern-php-looks-like-in-2025
https://redd.it/1m21wpn
@r_php
https://amirkamizi.com/blog/what-modern-php-looks-like-in-2025
https://redd.it/1m21wpn
@r_php
Amir Kamizi
What Modern PHP Looks Like in 2025 | Amir Kamizi
PHP has quietly evolved over the years, shedding many of its dated stereotypes while embracing modern programming practices and tooling. What used to be a language mocked for its inconsistencies and spaghetti-code reputation is now a mature, robust, and highly…