প্রবন্ধ

লারাভেল: লারাভেল রাউটিং এর ভূমিকা

লারাভেলে রাউটিং ব্যবহারকারীদের উপযুক্ত নিয়ামকের কাছে সমস্ত অ্যাপ্লিকেশন অনুরোধ রুট করতে দেয়। লারাভেলের বেশিরভাগ প্রাথমিক রুটগুলি বন্ধের সাথে একটি অভিন্ন সম্পদ শনাক্তকারীকে স্বীকৃতি দেয় এবং গ্রহণ করে, যা রাউটিং করার একটি সহজ এবং অভিব্যক্তিপূর্ণ উপায় প্রদান করে।

একটি রুট (রুট) কি?

পথটি আপনার অ্যাপ্লিকেশনের জন্য একটি অনুরোধ URL তৈরি করার একটি উপায়। এই URL গুলিকে একটি ওয়েবসাইটে নির্দিষ্ট ফাইলের সাথে যুক্ত করার প্রয়োজন নেই এবং এটি মানুষের পাঠযোগ্য এবং SEO বন্ধুত্বপূর্ণ।

লারাভেলে, le ফোল্ডারের ভিতরে পাথ তৈরি করা হয় routes. তারা ফাইল তৈরি করা হয় web.php ওয়েবসাইটের জন্য এবং এর মধ্যে api.php API-এর জন্য।

এইগুলো route গ্রুপে বরাদ্দ করা হয় middleware নেটওয়ার্ক, সেশন স্ট্যাটাস এবং নিরাপত্তা হাইলাইট করা CSRF. মধ্যে রুট route/api.php তারা স্টেটলেস এবং API মিডলওয়্যার গ্রুপে বরাদ্দ করা হয়েছে।
প্রাক ইনস্টলেশনdefiLaravel nita দুটি পাথ নিয়ে আসে, একটি ওয়েবের জন্য এবং একটি API এর জন্য। এই ওয়েব জন্য পাথ মত দেখায় কি web.php:

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

লারাভেলের একটি রুট কি?

সব লারাভেল পথ defiডিরেক্টরির মধ্যে অবস্থিত পাথ ফাইলগুলিতে niti routes. রুট ম্যানেজমেন্ট অ্যাপ্লিকেশন, defiফাইলে nished App\Providers\RouteServiceProvider, স্বয়ংক্রিয়ভাবে এই ফাইলগুলি সারিবদ্ধ করার যত্ন নেয়। ফাইল route/web.php defiআপনার ওয়েব ইন্টারফেসের জন্য পাথ nishes.

এটা সম্ভব defiএই নিয়ন্ত্রক কর্মের জন্য একটি পথ নিম্নরূপ নিশ করুন:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: পদ্ধতি Route::resource একটি অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় সমস্ত মৌলিক পাথ তৈরি করে এবং কন্ট্রোলার ক্লাসের মাধ্যমে পরিচালিত হয়।

যখন একটি অনুরোধ নির্দিষ্ট রুট URI-এর সাথে মিলে যায়, তখন পদ্ধতিটি চালু করা হয় show defiকন্ট্রোলারে সমাপ্ত App\Http\ControllersUserController, পদ্ধতিতে রুট প্যারামিটার পাস করা।

সম্পদের জন্য, আপনাকে অ্যাপ্লিকেশনটিতে দুটি জিনিস করতে হবে Laravel. প্রথমত, আপনাকে একটি সংস্থান পথ তৈরি করতে হবে Laravel যা সন্নিবেশ, আপডেট, দেখা এবং পাথ মুছে দেয়। দ্বিতীয়ত, একটি রিসোর্স কন্ট্রোলার তৈরি করুন যা সন্নিবেশ, আপডেট, দেখা এবং মুছে ফেলার জন্য একটি পদ্ধতি প্রদান করে।

প্রাক ইনস্টলেশনdefiLaravel nita দুটি পথ নিয়ে আসে: একটি ওয়েবের জন্য এবং একটি API-এর জন্য। ওয়েবে যাওয়ার রুটটি web.php-এ কেমন দেখায় তা এখানে:

Route::get(‘/’, function () {

return view(‘welcome’);

});

লারাভেল মিডলওয়্যার অনুরোধ এবং প্রতিক্রিয়া মধ্যে একটি সেতু হিসাবে কাজ করে. এটি ফিল্টার উপাদান কিছু ধরনের হতে পারে.

Laravel একটি সঙ্গে কাজ মিডলওয়্যার যা ক্লায়েন্ট অ্যাপ্লিকেশন যাচাই করা হয়েছে কিনা তা নিশ্চিত করার কাজ আছে। যদি ক্লায়েন্ট নিশ্চিত হয়, তাহলে রাউটিং হোম পেজে বা লগইন পৃষ্ঠায় পুনঃনির্দেশ করে।

জন্য পদ্ধতি route

আগের কোড defiহোম পেজে একটি পথ nishes. যখনই এই পথের অনুরোধ আসে get প্রতি /, ফেরত দেবে view welcome

সব লারাভেল পথ defiআপনার মধ্যে niti routing, যা ডিরেক্টরীর ভিতরে অবস্থিত routes. অতএব, l'AppProvidersRouteServiceProvider আবেদন লাইন আপ এই রেকর্ড. ফাইল route/web.php আপনার ওয়েব ইন্টারফেসের জন্য পরিচালিত রুটগুলি রয়েছে৷

পথের গঠন খুবই সহজ। উপযুক্ত ফাইল খুলুন (`web.phpo `api.php) এবং কোডের লাইন দিয়ে শুরু করুন `Route:: `, আপনি যে নির্দিষ্ট রুটে বরাদ্দ করতে চান সেই অনুরোধটি অনুসরণ করুন এবং তারপরে অনুরোধের পরে সঞ্চালিত হবে এমন ফাংশন নির্দিষ্ট করুন।

Laravel নিম্নলিখিত পথ পদ্ধতি অফার করে:

  • get
  • post
  • put
  • delete
  • patch
  • options

পথগুলো হলো defiHTTP সহ রুট ক্লাসের মধ্যে Laravel-এ nited, উত্তর দেওয়ার রুট এবং ক্লোজ, বা কন্ট্রোলার।

কিভাবে লারাভেলে পাথ তৈরি করবেন

আসুন দেখি কিভাবে আপনি লারাভেলে আপনার নিজস্ব পথ তৈরি করতে পারেন।

একটি মৌলিক GET পাথ

এখন আমি একটি মৌলিক পথ তৈরি করতে যাচ্ছি যা 2 এর টাইম টেবিল প্রিন্ট করবে।

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

উপরের কোডে, আমি URL এর জন্য একটি GET অনুরোধ পাথ তৈরি করেছি /table, যা স্ক্রিনে 2 এর টাইম টেবিল প্রিন্ট করবে।

এখন আসুন একই কোডটি দেখি, যে সংখ্যাটির জন্য আমরা গুণের সারণী চাই তা প্যারামিটারাইজ করে:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

কোডে 'number' ধনুর্বন্ধনীর মধ্যে প্যারামিটারের প্রতিনিধিত্ব করে, অর্থাৎ যে সংখ্যাটির জন্য গুণের টেবিলটি গণনা করা হবে। যখনই টাইপের একটি URL নির্দিষ্ট করা হয় /table/n, তারপর নম্বর টেবিল প্রিন্ট করা হবে n.

একই পথে উভয় বৈশিষ্ট্যকে একত্রিত করার উপায়ও রয়েছে। Laravel ঐচ্ছিক প্যারামিটার বৈশিষ্ট্য অফার করে যা আপনাকে প্রশ্ন চিহ্ন '?' ব্যবহার করে ঐচ্ছিক প্যারামিটার যোগ করতে দেয়। ঐচ্ছিক পরামিতি এবং প্রাক মান পরেdefiরাত আসুন উদাহরণটি দেখি:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

উপরের কোডে আমরা আমাদের রুট প্যারামিটার তৈরি করেছি, সংখ্যাটিকে ঐচ্ছিক করে, তাই যদি কোনো ব্যবহারকারী রুট করে `/table` তাহলে এটি ডিফল্টরূপে 2 এর টেবিল তৈরি করবেdefinite এবং যদি একজন ব্যবহারকারী `তে রুট করে/table/{number}তারপর নম্বর টেবিল 'number' উত্পাদিত হবে।

রুট প্যারামিটারের সীমাবদ্ধতা হিসাবে নিয়মিত এক্সপ্রেশন

পূর্ববর্তী উদাহরণে আমরা গুণের সারণী তৈরি করার জন্য একটি পথ তৈরি করেছি, কিন্তু গুণের টেবিল তৈরি করার সময় ত্রুটিগুলি এড়াতে আমরা কীভাবে নিশ্চিত করতে পারি যে পথের প্যারামিটারটি আসলে একটি সংখ্যা?

লারাভেলে, আপনি পারেন defi` পদ্ধতি ব্যবহার করে রুট প্যারামিটারে একটি সীমাবদ্ধতা নিশ করুনwhereরুটের উদাহরণে। The `where` প্যারামিটারের নাম এবং সেই প্যারামিটারের জন্য একটি রেগুলার এক্সপ্রেশন নেয়।

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

এখন আমাদের ` প্যারামিটারের জন্য একটি সীমাবদ্ধতার উদাহরণ দেখা যাক{numero}` নিশ্চিত করতে যে ফাংশনে শুধুমাত্র একটি সংখ্যা পাস করা হয়েছে।

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

উপরের কোডে, আমরা পাথ নম্বরের জন্য একটি রেগুলার এক্সপ্রেশন ব্যবহার করেছি। এখন, যদি একজন ব্যবহারকারী রুট করার চেষ্টা করে /টেবিল/নং প্রদর্শন করা হবে একটি NotFoundHttpException ব্যতিক্রম।

কন্ট্রোল ফাংশন সহ লারাভেল রাউটিং

লারাভেলে, আপনি পারেন defiএকটি পথের জন্য একটি কন্ট্রোলার পদ্ধতি নিশ করুন। একটি নিয়ামক পদ্ধতি সমস্ত ক্রিয়া সম্পাদন করে definite প্রতিবার একজন ব্যবহারকারী রুট অ্যাক্সেস করে।
নিম্নলিখিত কোড দিয়ে আমরা কন্ট্রোলার পদ্ধতি বরাদ্দ করছি 'functionname' একটি রুটে:

Route:: get ( '/home' , 'YourController@functionname' ) ;

কোড দিয়ে শুরু হয় `Route::` ই কুইন্ডি defiপথের জন্য অনুরোধের পদ্ধতিটি নিশ করে। পরবর্তীকালে, defiপদ্ধতির নামের আগে @ চিহ্ন যোগ করে পদ্ধতি সহ আপনার পথ এবং নিয়ামক শেষ করুন।

পথের একটি নাম দিন

লারাভেলে, আপনি পারেন defiআপনার পথের জন্য একটি নাম নিশ. এই নাম প্রায়ই খুব দরকারী। উদাহরণস্বরূপ, আপনি যদি একজন ব্যবহারকারীকে এক অবস্থান থেকে অন্য অবস্থানে পুনঃনির্দেশ করতে চান, তাহলে আপনাকে এটি করতে হবে না defiসম্পূর্ণ রিডাইরেক্ট ইউআরএল নিশ করুন। আপনি শুধু তার নাম দিতে পারেন. আপনি পারেন defi` পদ্ধতি ব্যবহার করে রুটের নাম নিশ করুনnameরুটের উদাহরণে।

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

এখন, আমি নিম্নলিখিত কোডের মাধ্যমে এই পথের জন্য url পুনরায় তৈরি করতে পারি:

$url = route('table');

একইভাবে, এই URL এ পুনঃনির্দেশ করার জন্য, সঠিক সিনট্যাক্স হবে:

return redirect()->route('table');

Route Groups

I Route Groups, আক্ষরিক অর্থে পাথ গ্রুপ, লারাভেলের একটি অপরিহার্য বৈশিষ্ট্য, যা আপনাকে পাথগুলিকে গোষ্ঠীভুক্ত করতে দেয়। পাথ গোষ্ঠীগুলি উপযোগী যখন আপনি সমস্ত গোষ্ঠীবদ্ধ পাথে বৈশিষ্ট্যগুলি প্রয়োগ করতে চান৷ আপনি যদি পাথ গ্রুপ ব্যবহার করেন, তাহলে আপনাকে প্রতিটি পাথে পৃথকভাবে বৈশিষ্ট্যগুলি প্রয়োগ করতে হবে না; এটি নকল এড়ায়। এটা আপনি মত বৈশিষ্ট্য শেয়ার করতে পারবেন middleware o namespaces, সেনজা defiপ্রতিটি পৃথক পথে এই বৈশিষ্ট্যগুলি শেষ করুন। এই ভাগ করা বৈশিষ্ট্যগুলি পদ্ধতিতে প্রথম প্যারামিটার হিসাবে একটি অ্যারে বিন্যাসে পাস করা যেতে পারে Route::group.

একটি রুট গ্রুপের সিনট্যাক্স

Route::group([], callback);  

ঘুঘু []: প্রথম প্যারামিটার হিসাবে গ্রুপ পদ্ধতিতে পাস করা একটি অ্যারে।

এর উদাহরণ Route Group নেল web.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

কোডে, defiএর পদ্ধতি খুঁজে বের করা যাক গ্রুপ(), যা দুটি পরামিতি ধারণ করে, যেমন array e closure. ভিতরে closure, আমরা পারি defiকতগুলি শেষ করুন route আমরা চাই. উপরের কোডে, আমাদের আছে defiতিনটি শেষ route.

যদি ব্রাউজারের মাধ্যমে আমরা URL অ্যাক্সেস করি localhost/myproject/first তারপর প্রথম একজন হস্তক্ষেপ করে route ব্রাউজারে টাইপ করা first way route.

URL দিয়ে localhost/myproject/second তারপর দ্বিতীয় আসে route ব্রাউজারে টাইপ করা second way route.

URL এর সাথে থাকাকালীন localhost/myproject/third তারপর তৃতীয় আসে route ব্রাউজারে টাইপ করা third way route.

এর উপসর্গ Route Groups

এর উপসর্গ route সেগুলি ব্যবহার করা হয় যখন আমরা একটি ইউআরএল কাঠামো দিতে চাই যাতে একাধিক সাধারণ route.

আমরা সমস্ত পাথের জন্য উপসর্গ নির্দিষ্ট করতে পারি defiউপসর্গ অ্যারে বিকল্প ব্যবহার করে গ্রুপের মধ্যে nites Route Groups.

এর উদাহরণ web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

কোডটিতে তিনটি পাথ রয়েছে যা নিম্নলিখিত URL গুলি থেকে অ্যাক্সেস করা যেতে পারে:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

মিডলওয়্যার

আমরা একটি গ্রুপের মধ্যে সমস্ত রুটে মিডলওয়্যার বরাদ্দ করতে পারি। মিডলওয়্যার হতে হবে defiগ্রুপ তৈরি করার আগে শেষ। এটি কীভাবে করবেন তা দেখতে, আমাদের নিবন্ধটি পড়ুন লারাভেল মিডলওয়্যার এটি কিভাবে কাজ করে.

উদাহরণ:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

পথের নামের উপসর্গ

পদ্ধতি name প্রতিটি নামের উপসর্গ ব্যবহার করা হয় route একটি নির্দিষ্ট স্ট্রিং সহ। পদ্ধতিতে name, আমাদের উপসর্গে একটি trailing অক্ষর সহ স্ট্রিং নির্দিষ্ট করতে হবে।

উদাহরণ web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

সাম্প্রতিক নিবন্ধ

ক্যাটানিয়া পলিক্লিনিকে অ্যাপল দর্শকের সাথে অগমেন্টেড রিয়েলিটিতে উদ্ভাবনী হস্তক্ষেপ

অ্যাপল ভিশন প্রো কমার্শিয়াল ভিউয়ার ব্যবহার করে ক্যাটানিয়া পলিক্লিনিকে একটি চক্ষুরোগ অপারেশন করা হয়েছিল...

3 মে 2024

শিশুদের জন্য রঙিন পৃষ্ঠাগুলির উপকারিতা - সব বয়সের জন্য একটি জাদু বিশ্ব

রঙের মাধ্যমে সূক্ষ্ম মোটর দক্ষতার বিকাশ শিশুদের লেখার মতো জটিল দক্ষতার জন্য প্রস্তুত করে। রঙ…

2 মে 2024

ভবিষ্যত এখানে: শিপিং শিল্প কীভাবে বৈশ্বিক অর্থনীতিতে বিপ্লব ঘটাচ্ছে

নৌ সেক্টর একটি সত্যিকারের বৈশ্বিক অর্থনৈতিক শক্তি, যা 150 বিলিয়ন বাজারের দিকে নেভিগেট করেছে...

1 মে 2024

প্রকাশকরা এবং OpenAI কৃত্রিম বুদ্ধিমত্তা দ্বারা প্রক্রিয়াকৃত তথ্যের প্রবাহ নিয়ন্ত্রণ করতে চুক্তি স্বাক্ষর করে

গত সোমবার, ফাইন্যান্সিয়াল টাইমস ওপেনএআই-এর সাথে একটি চুক্তি ঘোষণা করেছে। FT তার বিশ্বমানের সাংবাদিকতার লাইসেন্স দেয়...

30 এপ্রিল 2024

আপনার ভাষায় উদ্ভাবন পড়ুন

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

আমাদের অনুসরণ