احمد نادری

توسعه دهنده فول استک

author
author

احمد نادری

توسعه دهنده فول استک

یک پروژه لاراول با چند ساب دامین

بعضی اوقات پیش میاد که مثلا سامانه ی لاراولی داریم که میخواید نسخه های مختلفی از اون بسازیم . مثلا در یکی از پروژه های ما یک سامانه کلی مدیریتی وجود داشت + دو نسخه 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 .

درباره من
  • سلام به وب سایت من خوش اومدید ! از سال 1388 که وارد دنیای برنامه نویسی شدم تجربیات خودم رو از پروژه های مختلف به دست آوردم و همیشه سعی کردم تا مهارت های فنی و رفتاری خودم رو ارتقا بدم تا بتونم برای خودم و سازمانی که در آن کار می کنم بهترین باشم . من عاشق یادگیری هستم و همیشه از چالش های جدید هیجان زده میشم چون اونارو کلید موفقیت و رشد خودم می دونم.
  • @ahmadnaderi01
arrow