برنامه نویسی

3 تکنیک قدرتمند مسیریابی لاراول که باید از آنها استفاده کنید

مسیریابی ستون فقرات هر برنامه Laravel است و روشی ساختاری برای رسیدگی به درخواست های HTTP ارائه می دهد. در حالی که بسیاری از آموزش ها مسیریابی را در سطح سطح پوشش می دهند ، برنامه های دنیای واقعی نیاز به یک رویکرد استراتژیک تر دارند. Laravel مجموعه ای از ویژگی های غنی از جمله گروه های مسیر ، پیشوندها ، مکان های نام ، مسیرهای نامگذاری شده و ویژگی های کمتر شناخته شده مانند مسیریابی دامنه را ارائه می دهد. این مقاله به سه تکنیک مسیریابی قدرتمند و در عین حال غالباً غافلگیر می شود تا به شما در ساختار کاربردی LARAVEL کمک کند.

1. دامنه یا مسیریابی زیر دامنه

هنگام ساختن برنامه های پیچیده ، ممکن است در حالی که سایت اصلی را در دامنه اصلی نگه دارید ، نیاز به سازماندهی خدمات مختلف در زیر دامنه ها داشته باشید. به عنوان مثال:

مسیریابی زیر دامنه

ویژگی مسیریابی دامنه لاراول به شما امکان می دهد مسیرهای خاص زیر دامنه را با سهولت مدیریت کنید. در اینجا چگونه می توانید آن را تنظیم کنید:

// Main domain route
Route::domain('mydomain.com')->group(function () {
    Route::get("https://dev.to/", function () {
        return 'Main Website';
    });
});

// Subdomain routes
Route::domain('services.mydomain.com')->group(function () {
    Route::get("https://dev.to/", function () {
        return 'Services Dashboard';
    });
});

Route::domain('client.mydomain.com')->group(function () {
    Route::get("https://dev.to/", function () {
        return 'Client Portal';
    });
});

Route::domain('admin.mydomain.com')->group(function () {
    Route::get("https://dev.to/", function () {
        return 'Admin Panel';
    });
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای حفظ بهتر ، می توانید پرونده های مسیر جداگانه (service.php ، client.php ، admin.php) ایجاد کنید و آنها را در پرونده web.php خود مانند این قرار دهید:

require base_path('routes/services.php');
require base_path('routes/client.php');
require base_path('routes/admin.php');
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این رویکرد ، مسیرهای شما را سازمان یافته و پایگاه کد شما به ویژه در برنامه های بزرگ تمیز نگه می دارد.

2. مسیرهای نامگذاری شده در مقابل URL () یاور

مسیرهای نامگذاری شده روشی ایمن تر و قابل حفظ تر برای تولید URL در برنامه شما ارائه می دهند. بر خلاف تماس های مستقیم URL () ، در صورت عدم وجود مسیر ، مسیرهای نامگذاری شده خطایی را به وجود می آورد و از پیوندهای شکسته جلوگیری می کند.

// Example: Using Named Routes
// Defining a named route
Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard');

// Recommended usage
return redirect()->route('dashboard');

// In Blade templates
Dashboard
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

چه موقع از url () استفاده کنیم؟

یاور URL () برای تولید URL ها به پرونده ها ، دارایی ها یا مسیرهای ذخیره سازی در دسترس عمومی ، مانند:

url('storage/images/photo.jpg');
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای حفظ انعطاف پذیری و رسیدگی به خطا از استفاده از URL () برای پیمایش مسیر خودداری کنید.

3. گروه های مسیریابی برای سازمان

Laravel گزینه های نام ، پیشوند و گزینه های میان افزار را در گروه های مسیر ، تقویت سازمان مسیر و قابلیت حفظ ارائه می دهد.

1 فضای نام

نام های نام یک فضای نام کنترل کننده پیش فرض را ارائه می دهند ، در برنامه های مدولار مفید است. با این حال ، این تنها با کنترل کننده های منابع کار می کند. برای سایر کنترل کننده ها ، شما باید از نام کلاس کاملاً واجد شرایط استفاده کنید.

// Using a namespace with resource controllers
Route::namespace('App\Http\Controllers')->group(function () {
    Route::resource('stores', StoreController::class);
    Route::resource('users', UserController::class);
});

// Without namespace (fully qualified names)
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\SettingsController;

Route::get('/dashboard', [DashboardController::class, 'index']);
Route::get('/settings', [SettingsController::class, 'index']);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. پیشوند

روش پیشوند به حفظ URL های مداوم ، به ویژه برای پانل های سرپرست یا نسخه های API کمک می کند.

Route::prefix('admin')->group(function () {
    Route::get('/dashboard', [DashboardController::class, 'index']);
    Route::get('/users', [UserController::class, 'index']);
});
// URLs: /admin/dashboard, /admin/users
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. میان افزار

Middleware به شما امکان می دهد امنیت ، احراز هویت یا منطق سفارشی را در گروهی از مسیرها اعمال کنید.

Route::middleware(['auth', 'admin'])->group(function () {
    Route::get('/dashboard', [DashboardController::class, 'index']);
    Route::get('/reports', [ReportController::class, 'index']);
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ترکیب فضای نام ، پیشوند و میانی

شما می توانید هر سه ویژگی را برای مدیریت مسیر پیشرفته ترکیب کنید:

Route::group([
    'middleware' => ['auth', 'db.transaction'],
    'prefix' => 'admin',
    'namespace' => 'App\Http\Controllers',
], function () {
    Route::group(['prefix' => 'list'], function () {
        Route::resources(['stores.products' => ProductController::class]);
    });
    Route::group(['prefix' => 'catalogue'], function () {
        Route::resources(['stores.products' => ProductController::class]);
    });
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این روش یک راه اندازی مسیر ساختاری و قابل نگهداری ، به ویژه برای برنامه های در مقیاس بزرگ را تضمین می کند.

پایان

این تکنیک های پیشرفته مسیریابی – مسیریابی Domain ، مسیرهای نامگذاری شده و گروه های مسیر – برای ساخت برنامه های LARAVEL قوی ، حفظ و مقیاس پذیر بسیار ارزشمند هستند. با اجرای این استراتژی ها ، می توانید معماری برنامه خود را ارتقا دهید ، از مشکلات احتمالی خودداری کنید و مدیریت مسیر را ساده کنید. امروز شروع به آزمایش با این ویژگی ها کنید و توسعه لاراول خود را به سطح بعدی برسانید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا