Task Runner for Laravel — это пакет от Паскаля Балджета, который позволяет писать сценарии оболочки, такие как Blade Components, и запускать их локально или на удаленном сервере:Учитывая соглашения в этом пакете, приведенный выше шаблон будет иметь сопутствующий Task
класс:
{{-- 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';
}
}
что 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.