یک پروژه لاراول با چند ساب دامین
بعضی اوقات پیش میاد که مثلا سامانه ی لاراولی داریم که میخواید نسخه های مختلفی از اون بسازیم . مثلا در یکی از پروژه های ما یک سامانه کلی مدیریتی وجود داشت + دو نسخه pwa برای سرویس دهنده و سرویس گیرنده که اومده بودن ۳ تا پروژه جدا تعریف کرده بودن و همرو به یک دیتابیس متصل کردن .
یعنی مثلا رو هر کدوم از آدرس های زیر یک پروژه لاراولی وجود داشت و مدلها تکرار شده بودند و در نهایت به یک دیتابیس وصل بودن
example.com
pwa1.example.com
pwa2.example.com
مشکل کار چی بود ؟ فرض کنید شما یک تغییر کوچیک بخواید تو یکی از مدلها بدید اون موقع مجبورید بیاید تو تمام پروژه ها این کار رو تکرار کنید !
برای حل این مشکل میتونیم همرو داخل یک پروژه run کنیم . به پوشه route پروژه اصلیمون میریم و یک فایل جدید مثلا به اسم pwa1.php میسازیم و محتویات اونم به شکل زیر قرار میدیم :
<?php use Illuminate\Support\Facades\Route; Route::get('/', function () { return 'Route using separate file'; });
به قسمت RouteServiceProvider.php پروژه اصلی میریم و اونو به شکل زیر تغییر میدیم :
$subDomain = explode('.', $_SERVER['HTTP_HOST'])[0]; // account if( $subDomain == 'pwa1' || ) { Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/pwa1.php')); } else { Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }
حالا در داخل سرور یا سی پنل خودمون میایم یک ساب دامین به اسم pwa1 ایجاد میکنیم و آدرس اون رو روت اصلی پروژه قرار میدیم . مثلا /home/user/public_html .