Process Facade Coming to Laravel 10


February 7th, 2023

Process Facade Coming to Laravel 10

Laravel 10, due out next week, will introduce a Process layer for Laravel. Like the HTTP facade makes working with APIs a cinch, the Process service will make working with, testing, and running CLI processes a dream to work with. You can see the basic usage of this feature in the following example from Pull Request #45314 by Taylor Otwell:

use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');

The Process layer includes rich features out of the box, such as:

  • Fluent process methods to build a process instance before running it
  • Process output handling as it is received
  • Asynchronous processes
  • Process Pools
  • Rich testing features via fake()
  • Preventing stray processes during tests

Testing processes has never been easier, and I am excited for the code API around testing processes that you run in your applications:

'ls *' => Process::result('Hello World'),
$result = Process::run('ls -la');
Process::assertRan(function ($process, $result) {
return $process->command == 'ls -la';
Process::assertRanTimes(function ($process, $result) {
return $process->command == 'ls -la';
}, times: 1);
Process::assertNotRan(function ($process, $result) {
return $process->command == 'cat foo';

Check out Pull Request #45314 for implementation details and plenty of examples. This feature will surely be documented with the release of Laravel 10. A hat tip to Nuno Maduro and Taylor Otwell for adding Process to Laravel 10, it looks amazing!

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.