使用任务运行器编写类似 Blade 组件的 Shell 脚本
发布于 作者: Paul Redmond
任务运行器 是 Pascal Baljet 为 Laravel 开发的包,它允许您编写类似 Blade 组件的 Shell 脚本并在本地或远程服务器上运行它们。
{{-- resources/views/tasks/deploy-app.blade.php --}}cd /var/www/htmlgit pull origin {{ $branch }}php artisan migrate --database={{ $databaseConnection() }}
根据此包中的约定,上面的模板将有一个配套的 Task
类
use ProtoneMedia\LaravelTaskRunner\Task; class DeployApp extends Task{ public function __construct(public string $branch) { } public function databaseConnection() { return 'mysql'; }}
您可能已经注意到,databaseConnection()
公共方法可在模板中作为可调用函数使用。所有公共方法都可以在任务 Blade 模板中使用。
如果您想触发上面的任务,您可以使用包的 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 上了解有关此包的更多信息,获取完整的安装说明并查看 源代码。