بخش اول - روتینگ چیست؟
مسیریابی (Routing) یکی از مهمترین و پایهایترین قابلیتها به شمار میآید که امکان مدیریت درخواستهای ورودی به برنامه را فراهم میکند. مسیریابی در واقع تعیین میکند که درخواستهای کاربران به کدام قسمت از برنامه ارسال شوند و چه عملیاتی روی آنها انجام شود. به عبارت دیگر، مسیریابی مسئولیت اتصال URLهای مختلف به کنترلرها و اکشنهای مشخصی را بر عهده دارد.
هر مسیر میتواند به یک کنترلر یا یک کلوژر اشاره کند. همچنین، امکان تعریف مسیرهای پویا با استفاده از پارامترهای مسیریابی نیز وجود دارد که این قابلیت، انعطافپذیری بیشتری به برنامه میبخشد.
چندین فایل اصلی برای مدیریت مسیرها وجود دارد که هر کدام کاربرد خاص خود را دارند. این فایلها در دایرکتوری routes قرار دارند و به شما این امکان را میدهند که مسیرهای مختلف برنامه خود را سازماندهی و مدیریت کنید. در ادامه توضیح مختصری از هر فایل ارائه میشود:
1- web.php
این فایل برای تعریف مسیرهای وب استفاده میشود. مسیرهای تعریف شده در این فایل معمولاً به کنترلرهایی متصل میشوند که صفحات وب را رندر میکنند.
Route::get('/', function () {
return view('welcome');
});2- api.php
این فایل برای تعریف مسیرهای API استفاده میشود. این مسیرها معمولاً برای ارائه داده به برنامههای فرانتاند یا سایر سرویسها استفاده میشوند.
Route::get('/', function () {
return response()->json(["hello"]);
});3- console.php
این فایل برای تعریف فرمانهای کنسول (artisan commands) استفاده میشود. شما میتوانید فرمانهای کنسول خود را در این فایل تعریف کنید که از طریق خط فرمان قابل اجرا هستند. این فرمانها به شما اجازه میدهند تا کارهای مختلفی مانند پاکسازی دیتابیس یا ایجاد کاربران نمونه را انجام دهید.
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->describe('Display an inspiring quote');4- channels.php
این فایل برای تعریف کانالهای بروزرسانی لحظهای (broadcasting channels) استفاده میشود. این کانالها برای ارسال پیامها و دادهها به صورت لحظهای به مرورگرهای وب یا سایر سرویسها استفاده میشوند. شما میتوانید دسترسی به کانالها را در این فایل کنترل کنید.
Broadcast::channel('order.{orderId}', function ($user, $orderId) {
return $user->id === Order::find($orderId)->user_id;
});در این فصل تنها با route های web و api آشنا می شویم.
متد های Route از کلاس خاصی(Facade-فَساد) با نام Route در دسترس هستند.
use Illuminate\Support\Facades\Route;
در فساد Route متد های متعددی وجود دارد که به تمامی آنها خواهیم پرداخت. اما برخی در این فصل توضیح داده می شود و برخی دیگر در فصل های آینده.
#laravel #فصل_1
@AmirhDeveloper
.