Laravel 10: Фасад Process

Источник: «Process Facade Coming to Laravel 10»
В выходящем Laravel 10 будет представлен новый слой фасадов Process. Давайте посмотрим зачем он нужен и в чём его преимущества.

В выходящем Laravel 10 будет представлен новый фасад — Processes. Подобно HTTP Фасадам упрощающим работу с API, сервис Process превратит работу с тестированием и запуском CLI процессов в мечту. Базовый пример использования можно посмотреть в Pull Request #45314 от Taylor Otwell:

use Illuminate\Support\Facades\Process;

$result = Process::run('ls -la');

$result->successful();
$result->failed();
$result->exitCode();
$result->output();
$result->errorOutput();
$result->throw();
$result->throwIf($condition);

Фасад Process/Процесс включает множество готовых возможностей из коробки, таких как:

Тестирование процессов никогда не было проще, и я в восторге от кода API для тестирования процессов, который вы запускаете в своих приложениях:

Process::fake([
'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';
});

Посмотрите Pull Request #45314, чтобы узнать детали реализации и множество примеров. Эта возможность обязательно будет задокументирована с выпуском Laravel 10. Спасибо Nuno Maduro и Taylor Otwell за добавление Process в Laravel 10, выглядит потрясающе!

Дополнительные материалы

Предыдущая Статья

PHP: Абстрактная Фабрика

Следующая Статья

Laravel 10: Что такое Processes / Процессы