Laravel 10, який має вийти наступного тижня, введе технологічний
шар для Laravel. Подібно до того, як HTTP-фасад робить роботу з API підказкою, служба Process зробить роботу, тестування та запуск процесів CLI мрією для роботи. Ви можете побачити основне використання цієї функції в наступному прикладі з Pull Request #45314 Тейлора Отвелла:
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);
Шар процесу включає багаті функції з коробки, такі як:
- Вільні методи процесу для побудови екземпляра процесу перед його запуском
- Обробка виводу процесу, оскільки він отриманий
- Асинхронні процеси Пули
- багатих функцій тестування через
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. Підказка капелюха Нуно Мадуро та Тейлору Отвеллу за додавання процесу до Laravel 10, виглядає приголомшливо!