PHP-PM is an open-source process manager, supercharger, and load balancer for PHP applications. It uses ReactPHP to achieve event-driven, non-blocking I/O with PHP.
It’s based on ReactPHP and works best with applications that use request-response frameworks like Symfony’s HTTPKernel. The approach of this is to kill the expensive bootstrap of PHP (declaring symbols, loading/parsing files) and the bootstrap of feature-rich frameworks. See Performance section for a quick hint. PHP-PM basically spawns several PHP instances as worker bootstraping your application (eg. the whole Symfony Kernel) and hold it in the memory to be prepared for every incoming request: This is why PHP-PM makes your application so fast.
At a high level, the main features of PPM are:
- Performance boost up to 15x (compared to PHP-FPM, Symfony applications).
- Integrated load balancer.
- Hot-Code reload (when PHP files change).
- Static file serving for easy development procedures.
- Support for HttpKernel (Symfony/Laravel), Drupal (experimental), Zend (experimental).
PHP-PM is not ready for prime-time at the time of writing, but this technique is a fascinating approach that thinks outside the typical box of serving high-performance PHP applications. The authors are working on issues and pushing non-blocking processes in PHP to the limit. In my opinion, PHP will inch closer to being as performant as other options like Java and Node, and projects like PHP-PM seem like a neat approach to unlocking the performance needed for greater I/O. I am looking forward to seeing where projects like PPM and ReactPHP take PHP.
PHP7’s performance improvements were drastic from PHP5 and in my humble opinion we will see more performance-related focus on upcoming PHP releases and open-source software using PHP.
Check out the official GitHub repository and the README to learn more about running PHP-PM.
One of the main contributors, Marc J. Schmidt, also wrote up a detailed article Bring High Performance Into Your PHP App (with ReactPHP) that explains the concepts used in PPM in greater detail.
Filed in: News
Join the weekly newsletter and never miss out on new tips, tutorials, and more.
Remote (Overlap w/ Continental US Time Zones)
- Web Developer
Livesystems dooh AG
- Senior Backend Engineer
- Senior Laravel Developer
- Full-Stack Developer (JS - Vue.js, PHP - Laravel)
US Remote / Telecommute
- Backend Engineer
- Back-End Developer
Christ for all Nations
Sending and receiving SMS Laravel Notifications with Nexmo
This is the first part of a series of tutorials by Michael Heap, covering how to build a multi-channel help desk syst…
Learn How to Shell with Explain Shell
ExplainShell.com is an online tool built by Idan Kamara that visually explains each part of a Unix command by matchin…