• Время чтения ~1 мин
  • 20.02.2023

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, это выглядит потрясающе!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297