• Час читання ~1 хв
  • 20.02.2023

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, виглядає приголомшливо!

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