راه اندازی خودکار اپلیکیشن لاراول با Laravel Initializer

آیا تا به حال برای شما پیش آمده است که راه اندازی اپلیکیشن لاراول خود در یک محیط جدید را به صورت دستی و در چندین مرحله بنویسید؟ Laravel Initializer یک روش مناسب برای خودکار سازی عملیات نصب و بروز رسانی اپلیکیشن لاراول است.

Laravel Initializer به شما این امکان را می دهد که چندین فرآیند را اعلان کرده و آن‌ها را با دستورات آرتیسان app:install و app:update اجرا کنید که بسته به محیط فعلی برنامه، زنجیره عملیات از پیش تعریف شده را اجرا می‌کنند.

دستورات 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');
}
}

در صورت نیاز به دسترسی به سرویس‌های خاص در هنگام اجرای دستورات، می‌توانید وابستگی‌ها را از service container به برنامه تزریق کنید.

این پکیج شامل انواع اکشن‌ها است که می‌توانید در فایل readme آن‌ها را مورد بررسی قرار دهید. در اینجا، اکشن MakeCronTask را مشاهده می‌کنید:

$run->dispatch(new \MadWeb\Initializer\Jobs\MakeCronTask)

MakeCronTask موارد زیر را به لیست crontab سرور اضافه می‌کند:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

شما می‌توانید کارهای دیگری مانند ایجاد پیکربندی ناظر (supervisord) برای یک queue worker یا horizon را نیز با از استفاده از این پکیج انجام دهید.

 مقالات بیشتر در لیداوب:

شما می‌توانید اطلاعات بیشتر در مورد این پکیج، دستورالعمل‌های نصب و کد منبع آن را در GitHub مشاهده کنید. با سایر مقالات مشابه ما در کتابخانه آنلاین لیداوب همراه باشید و نظرات و سوالات خودتان را در بخش دیدگاه‌های سایت با ما به اشتراک بگذارید.