Laravel 10, который должен выйти на следующей неделе, представит слой процесса
для Laravel. Подобно тому, как ФАСАД HTTP делает работу с API сложной задачей, служба Process сделает работу, тестирование и запуск процессов CLI мечтой для работы. Вы можете увидеть основное использование этой функции в следующем примере из Pull Request #45314 by 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 включает в себя богатые функции из коробки, такие как:
- Методы процесса Fluent для сборки экземпляра процесса перед его запуском
- Обработка выходных данных по мере
- получения асинхронных
- процессов Пулы процессов
- Богатые функции тестирования через
fake()
- Предотвращение случайных процессов во время тестов
Тестирование процессов никогда не было проще, и я очень рад 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. Совет нуно Мадуро и Тейлору Отвеллу за добавление Process в Laravel 10, это выглядит потрясающе!