Task Runner for Laravel - це пакет від Pascal Baljet, який дозволяє писати скрипти оболонки, такі як Blade Components, і запускати їх локально або на віддаленому сервері:Враховуючи домовленості в цьому пакеті, вищевказаний шаблон матиме супровідний клас:
{{-- resources/views/tasks/deploy-app.blade.php --}}
cd /var/www/html
git pull origin {{ $branch }}
php artisan migrate --database={{ $databaseConnection() }}
use ProtoneMedia\LaravelTaskRunner\Task;
class DeployApp extends Task
{
public function __construct(public string $branch) { }
public function databaseConnection()
{
return 'mysql';
}
}
Ви могли помітити, що публічний Task
databaseConnection()
метод доступний як викликається в шаблоні. Всі публічні методи доступні в шаблонах лез завдань.
Якщо ви хочете запустити вищевказане завдання, ви можете скористатися методом dispatch()
пакета, який запустить його локально. Ви також можете відправляти завдання у фоновому режимі, а також запускати їх на віддаленому сервері:Цей пакунок також має чудових помічників для тестування,
$output = DeployApp::dispatch();
$output = DeployApp::inBackgronud()
->onConnection('web')
->dispatch();
// API of the task result
$output->getBuffer();
$output->getExitCode();
$output->isSuccessful();
$output->isTimeout();
// returns the buffer as an array
$output->getLines();
про які ви можете прочитати в документації. Ви можете дізнатися більше про цей пакет, отримати повні інструкції зі встановлення та переглянути вихідний код на GitHub.