استفاده از چندین فایل Route در لاراول

علی حسین شهابی

1395/8/15

نظر0

با سلام خدمت دوستان لاراولی عزیز

مقاله امروز درباره نحوه ایجاد چندین فایل route به جای یک فایل (Multiple Route) در فریم ورک لاراول می باشد .

همانطور که می دانید در فریم ورک لاراول به صورت پیشفرض یک فایل به نام routes.php وجود دارد و آن هم در شاخه ی app\Http است  و تمام روتینگ های پروژه را داخل این فایل می نویسیم.

ممکن است در برخی پروژه ها به علت بزرگی و شلوغی بهتر باشد چندین فایل route درست نماییم و هر کس یا هر بخشی از روت ها را داخل یک فایل قرار دهیم .

خب این کار در فریم ورک لاراول خیلی ساده است  .

به عنوان مثال ما می خواهیم دو فایل روتینگ با نام های api.routes  و web.routes  در پوشه ای به نام Routes در شاخه ی Http قرار دهیم .

و همچنین کنترلرهای این دو بخش را هم مجزا نماییم و یکی را در پوشه ی  Web در شاخه App\Http\Controllers\Web قرار دهیم و دیگری را در پوشه ی Api و در شاخه ی App\Http\Controllers\Api .

وقتی فایل های لازمه را در شاخه های بالا ایجاد کردیم نوبت به آن می رسد تا دو فایل روتینگ جدیدمان به همراه مسیرهای پیشفرض کنترلر هایشان را به لاراول معرفی کنیم .

برای اینکار وارد فایل RouteServiceProvider.php بشوین و در متد map این کلاس , دو فایل روتینگمان را معرفی نماییم :

<?php
 
namespace App\Providers;
 
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Routing\Router;
 
class RouteServiceProvider extends ServiceProvider
{
 
    /**
     * This namespace is applied to the controller routes in your routes file.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $webNamespace = 'App\Http\Controllers\Web';
 
    protected $apiNamespace = 'App\Http\Controllers\Api';
 
    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @param  \Illuminate\Routing\Router $router
     *
     * @return void
     */
    public function boot(Router $router)
    {
        //
 
        parent::boot($router);
    }
 
    /**
     * Define the routes for the application.
     *
     * @param  \Illuminate\Routing\Router $router
     *
     * @return void
     */
    public function map(Router $router)
    {
 
        /*
        |--------------------------------------------------------------------------
        | Web Router
        |--------------------------------------------------------------------------
        */
 
        $router->group(['namespace' => $this->webNamespace], function ($router) {
            require app_path('Http/Routes/web.routes.php');
        });
 
        /*
        |--------------------------------------------------------------------------
        | Api Router
        |--------------------------------------------------------------------------
        */
 
        $router->group(['namespace' => $this->apiNamespace], function ($router) {
            require app_path('Http/Routes/api.routes.php');
        });
 
    }
}

 

خب آموزش ما به پایان رسید . سوالی داشتین می توانین درقسمت نظرات بیان کنید .

موفق باشید .

اینستاگرام علی حسین شهابی لینکدین علی حسین شهابی

0 نظر

ارسال نظر جدید

 
Not signed in

کلیه حقوق مادی و معنوی , متعلق به سایت (Alihossein.ir)می باشد ,انتشار مطالب بدون ذکر منبع از نظر اخلاقی و شرعی صحیح نمی باشد.