Blog
February 28, 2020
Asynchronous PHP challenges the traditional, synchronous request‑response model that has long defined how PHP applications run. In a synchronous setup, each task must finish before the next can begin, leaving applications idle while waiting on I/O operations like database queries, API calls, or file access. As modern PHP systems grow more complex and performance expectations rise, those idle moments quickly become scalability and responsiveness bottlenecks.
By contrast, asynchronous PHP enables non‑blocking execution, allowing applications to handle multiple tasks at once and make better use of available CPU resources. Instead of waiting on slow operations, PHP can continue processing other work, improving throughput and reducing latency. In this post, we’ll explain what asynchronous PHP is, how it differs from synchronous execution, and why it’s increasingly important for building high‑performance, scalable PHP applications.
Table of Contents
- What is Asynchronous PHP?
- How Do You Enable Asynchronous PHP?
- What Is Synchronous PHP?
- What Are Synchronous and Asynchronous PHP Calls?
- Does Asynchronous Processing Boost PHP Performance?
- Asynchronous PHP or Synchronous PHP: Which Model Should You Use?
- What Are the Benefits of Asynchronous PHP?
- Projects to Get Started with Asynchronous PHP
What is Asynchronous PHP?
Asynchronous PHP is PHP code written using the asynchronous model. In other words, asynchronous applications can multi-task.
This is critical because traditionally, there’s a lot of time when a CPU sits idle while a PHP application manages I/O tasks. Not only does this slow overall application performance, but also, it lowers hardware utilization.
The idea behind asynchronous PHP, or async PHP, is to take full advantage of all available CPU cycles to boost PHP performance. It does this by keeping non-blocking I/O tasks running in the background, and letting the CPU process other tasks as it’s waiting for data and instructions needed to complete the I/O tasks.
By making it possible for your applications to manage many requests at once, they can take full advantage of available hardware resources, which can boost ROI and service levels at the same time.
Back to topHow Do You Enable Asynchronous PHP?
By using extensions such as Swoole, or a framework for PHP such as ReactPHP, you can make it possible for your PHP applications to accept requests and responses asynchronously, using event loops.
Back to topWhat Is Synchronous PHP?
Synchronous PHP code is sequential. Individual tasks must be completed before you can start another one. So with synchronous PHP, the CPU can process only one I/O task at a time. When it completes one task, it moves on to the next one in the queue.
PHP was originally created to support synchronous development, so most PHP developers are used to writing only synchronous code with the language. Prefork with either mod_php with Apache or php-fpm with either Apache or Nginx.
Back to topWhat Are Synchronous and Asynchronous PHP Calls?
Synchronous calls must be completed before code execution resumes on the API. Asynchronous calls, which do not pause code execution on the API, issue a "callback" when the call is completed.
Back to topDoes Asynchronous Processing Boost PHP Performance?
Yes. Because asynchronous processing enables the management and completion of more than one task at a time, you can dramatically boost PHP performance by using it instead of synchronous PHP.
In some benchmarks, you can increase PHP performance (throughput) by 100 times, by enabling asynchronous PHP via Swoole, instead of using a process accelerator such as php-fpm with synchronous code. That’s because php-fpm does not support asynchronous, real-time communications using protocols such as Websockets.
On-Demand Webinar
Heading Text
This webinar shows how asynchronous processing can help increase PHP performance, among other performance improvement tips.
Asynchronous PHP or Synchronous PHP: Which Model Should You Use?
As with most questions around runtime, web servers, and programming in general, the decision to use synchronous or asynchronous PHP will vary between use cases. To use asynchronous PHP, your code needs to support it. Today, most of the ready-to-go PHP extensions can only support synchronous models because they use methods such as blocking I/O calls.
It is possible to rewrite your code to support asynchronous processes by using a framework such as Swoole to manage background processing. For example, calls that require I/O would need to be sent to Swoole to manage in the background so that your application can continue on to the next instruction. When the data comes back from the I/O call, Swoole would then need to return control of the I/O call to your application, so it can hand the requested data to the process.
Back to topWhat Are the Benefits of Asynchronous PHP?
Refactoring your applications to support asynchronous processes may require some effort. However, by doing do, you can:
- Improve PHP performance and user experience
- Maximize hardware utilization
- Potentially, reduce your data center footprint
Projects to Get Started with Asynchronous PHP
Since your code has to be written in a way to support asynchronous processes, you’ll need to utilize a project that can do that. Here are our top-three recommendations:
- Swoole – Coroutine PHP ansychronous programming framework
- Reactphp – Event-driven, non-blocking I/O with PHP
- Amphp – Non-blocking concurrency framework for PHP
PHP Training
Take Your PHP Skills to the Next Level
Whether you're a beginner, intermediate, or advanced PHP developer, Zend has the PHP courses you need to improve your skills. View all available listings, including free, on-demand, and instructor-led options, by clicking the button below.