使用 Laravel Initializer 自动化应用程序设置
发布于 作者 Paul Redmond
您是否曾经发现自己需要在新的环境中编写多个手动步骤来设置 Laravel 应用程序?Laravel Initializer 是一种便捷的方式,可以自动安装和更新 Laravel 应用程序
Laravel Initializer 使您能够声明多个进程并使用 app:install 和 app:update Artisan 命令运行它们,这些命令根据当前环境运行预定义的操作链。
app:install
和 app:update
命令使用两个不同的类来运行基于给定环境的命令。首先,install
命令使用 App\Install
类
namespace App; use MadWeb\Initializer\Contracts\Runner; class Install{ public function production(Runner $run) { return $run ->external('composer', 'install', '--no-dev', '--prefer-dist', '--optimize-autoloader') ->artisan('key:generate') ->artisan('migrate', ['--force' => true]) ->artisan('storage:link') ->external('npm', 'install', '--production') ->external('npm', 'run', 'production') ->artisan('route:cache') ->artisan('config:cache') ->artisan('event:cache'); } public function local(Runner $run) { return $run ->external('composer', 'install') ->artisan('key:generate') ->artisan('migrate') ->artisan('storage:link') ->external('npm', 'install') ->external('npm', 'run', 'development'); }}
app:update
命令看起来很相似,使用 App\Update
类
namespace App; use MadWeb\Initializer\Contracts\Runner; class Update{ public function production(Runner $run) { return $run ->external('composer', 'install', '--no-dev', '--prefer-dist', '--optimize-autoloader') ->external('npm', 'install', '--production') ->external('npm', 'run', 'production') ->artisan('route:cache') ->artisan('config:cache') ->artisan('event:cache') ->artisan('migrate', ['--force' => true]) ->artisan('cache:clear') ->artisan('queue:restart'); ->artisan('horizon:terminate'); } public function local(Runner $run) { return $run ->external('composer', 'install') ->external('npm', 'install') ->external('npm', 'run', 'development') ->artisan('migrate') ->artisan('cache:clear'); }}
如果需要在运行命令时访问服务,您也可以从服务容器中注入依赖项。
此软件包包含各种运行器操作,您应该在自述文件中查看它们。我发现 MakeCronTask
调度很有趣
$run->dispatch(new \MadWeb\Initializer\Jobs\MakeCronTask)
MakeCronTask 将以下内容添加到服务器的 crontab 列表中
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
您可以执行其他操作,例如为典型的队列工作程序或 Horizon 创建 supervisord 配置。
您可以在 GitHub 上的 mad-web/laravel-initializer 上了解有关此软件包的更多信息,获取完整的安装说明,并查看源代码。