سبد (0)

مسیردهی(routing) در لاراول

در برنامه های لاراول، routeهای مربوط به وب، در آدرس routes/web.php قرار می گیرند و routeهای مربوط به API نیز در آدرس routes/api.php قرار می گیرند. routeها یا مسیرهای وب به آنهایی گفته می شود که توسط کاربران قابل مشاهده هستند. و routeهای API نیز آنهایی هستند که برای APIها مورد استفاده قرار می گیرند. فعلا تنها به routeهای فایل routes/web.php می پردازیم. 

نکته: در پروژه هایی که نسخه ی لاراول آنها از 5.3 کمتر است، فایل routeها در آدرس app/Http/routes.php قرار دارد. 

ساده ترین راه برای ایجاد یک route، تطابق دادن آن با یک آدرس مثل اسلش(/) و استفاده از یک کلوژر است. 

 سوال: کلوژر چیست؟ 

پاسخ: به توابع بی نام در PHP کلوژر گفته می شود. 

 (مثال 3.1)

// routes/web.php
Route::get('/', function () {
  return 'Hello, World!';
});

با استفاده از دستورات بالا، اگر کسی به ریشه ی سایت ما یعنی همان دامنه ی ما مراجعه کند، مسیریاب لاراول کلوژر تعریف شده را اجرا می کند و نتیجه را return می کند. توجه کنید که در کلوژر ما باید محتوای خود را return کنیم، نه اینکه آن را echo یا print کنیم. 

اکثر سایت های ساده را می توان با استفاده از routeها و در داخل فایل web.php تعریف کرد. با استفاده از چند متد GET که با تعدادی قالب ترکیب شده باشند، می توانیم به سادگی یک وب سایت را راه اندازی کنیم. به مثال 3.2 توجه کنید: 

(مثال 3.2)

Route::get('/', function () {
  return view('welcome');
});
Route::get('about', function () {
  return view('about');
});
Route::get('products', function () {
  return view('products');
});
Route::get('services', function () {
  return view('services');
});

 


 

مسیردهی یا routing یعنی راه اندازی یک URI مثل http://localhost:8000/hello. مسیردهی آدرس یک صفحه ی مقصد را به ما می دهد. مسیر دهی در لاراول بسیار ساده است. برای ایجاد یک مسیر(route) یک متد استاتیک وجود دارد که دو آرگومان زیر را می پذیرد: 

1. یک URI

2. یک تابع بی نام که به آن کلوژر(Closure) گفته می شود. 

 

در آدرس rotes/web.php کدهای یک مسیردهی وجود دارد. بنابراین فایل web.php را با استفاده از یک ادیتور باز کنید. کدهای زیر را مشاهده خواهید نمود: 

Route::get('/', function () {
return view('welcome');
});

 در کدهای بالا، Route یک کلاس است و یک متد به نام get دارد که حاصل و نتیجه ی اجرای متدی به نام view را return می کند. حالا هنگامی که یک کاربر صفحه ی اصلی سایت شما را نگاه می کند، پیغام welcome page را مشاهده می کند. این پیغام در داخل یک فایل php به نام welcome.blade.php قرار دارد. و به هنگام نصب لاراول، به طور پیش فرض در داخل پوشه ی views ایجاد شده است. 

 در مبحث viewها و موتور قالب سازی blade، کاملا با این مفاهیم آشنا خواهید شد. شما می توانید به جای مسیر(route) پیش فرض، یک درخواست دیگر را با استفاده از پروتکل HTTP ارسال کنید. بعنوان مثال می توانید از کد زیر استفاده کنید: 

Route::get('/', function () {
  return 'welcome';
});

 کدهای بالا باعث می شوند که عبارت welcome در صفحه ی اصلی نشان داده شود. می توانید امتحان کنید. 

اگر به کدهای مثال بالا توجه کنید، یک تابع بی نام نیز وجود دارد. بعنوان یک برنامه نویس php، فرض می کنیم که شما با توابع بی نام یا همان کلوژر آشنا هستید. 


اکنون قصد داریم یک صفحه ی وب به نام hello را در لاراول ایجاد کنیم. قبل از تعریف کردن این صفحه، اگر به آدرس localhost:8000/hello برویم با یک خطا مواجه خواهیم شد. بنابراین ابتدا باید این صفحه را تعریف کنیم. پس در داخل فایل web.php کدهای زیر را اضافه کنید: 

//requesting a new page
Route::get('/hello', function () {
  echo '<h1>Hello</h1>';
});

 اجازه دهید تا نتیجه را مشاهده کنیم و ببینیم که اگر کدهای html را در داخل کلوژر قرار دهیم و آنها را return کنیم چه اتفاقی می افتد. نتیجه به صورت زیر خواهد بود: 

 

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه