PHP Professional,Laravel 5.6 Beginning to Advance এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

বাংলায় PHP LARAVEL FRAMEWORK পর্ব-৩ : Laravel Route Basics

প্রিয় পাঠক, বাংলায় PHP Laravel Framework শেখার তৃতীয় পর্বে আপনাকে স্বাগতম। এই পর্বে আমরা Laravel Route এর প্রাথমিক কিছু ধারণা নিবো। চলুন শুরু করা যাক :

Laravel Framework এ routes কি?

Laravel Route

সাধারণত ইংরেজি শব্দ route যাকে অনেক সময় আমরা বাংলায় বলি রুট যার অর্থ দাঁড়ায় গন্তব্যস্থলে পৌঁছানোর রাস্তা। আর Laravel Application এ route হচ্ছে URL থেকে request গ্রহণ করে এবং application কে resource এর জন্য নির্দেশনা প্রদান করে। আরো সহজ ভাবে বলা যায় route হল আপনার অ্যাপ্লিকেশনের একটি request এর বিপরীতে কোন URL টি hit হবে? বা কোথায় থেকে কি response করবে তা নির্ধারণের একটি উপায়। Laravel 5.5 এ সব route গুলো routes ফোল্ডারে তৈরী করা থাকে। এর মধ্যে web application এর route সমূহ routes/web.php তে লিখা হয়। এবং API এর জন্য route সমূহ routes/api.php তে লিখা হয়। Laravel Framework এ route এর সবচেয়ে বড় সুবিধা হচ্ছে আপনি এক যায়গা থেকেই সমস্ত route কে নিয়ন্ত্রণ করতে পারবেন অর্থাৎ পরবর্তিতে route সম্পর্কিত যেকোনো ধরনের পরিবর্তন এখান থেকেই করতে পারবেন।

Laravel Route এর প্রাথমিক ধারণা

Laravel Route লিখার আগে আপনাকে PHP Anonymous Function, Closure এবং PHP Class এর Static Method সম্পর্কে ধারণা থাকা দরকার, আমরা ধরে নিলাম আপনি এই গুলো জানেন। তো আসা যাক কিভাবে route দিয়ে URL Request গুলো Manage করতে পারি। ধরুন আমাদের Web Application এ তিনটি পেজ আছে , সেগুলো যথাক্রমে Home, About এবং Contact. এখন Web Application ব্যবহারকারী এই তিনটি পেজ এর মধ্যে যাকে request করবে শুধু সংশ্লিষ্ট পেজটি response করবে। অনেকটা নিচের URL এর মত:

for Home page:

http://localhost:8000/

for About page:

http://localhost:8000/about

for Contact page:

http://localhost:8000/contact

এখন এই তিনটি URL Request এর জন্য আপনি Laravel এর routes/web.php ফাইল এ ঠিক নিচের মত করে লিখতে পারেন।

Route::get('/', function (){
    echo "<h2>This is Home Page</h2>;
});
Route::get('/about', function (){
    echo "<h2> This is About Page</h2>";
});
Route::get('/contact', function (){
    echo "<h2> This is Contact Page</h2>";
}); 

এখন আপনি আপনার ব্রাউজার এর Address bar এ http://localhost:8000 , http://localhost:8000/about এবং http://localhost:8000/contact লিখে hit করুন, তাহলে আপনার route ঠিক নিম্নের screenshot গুলোর মতো রেজাল্ট দেখাবে:

Laravel Contact Us Page

Laravel About Us Page

নোট: অবশ্যই ” php artisan serve ” command দিয়ে server run রাখতে ভুলবেননা।

ব্যাখ্যা: উপরোক্ত উদাহরণে আমরা Route class এর get() মেথডকে call করেছি। Route Class এর get() মেথডটি দুইটি Argument গ্রহণ করে। প্রথম Argument হিসেবে URL Path অর্থাৎ যেই URL এ hit করবে সেটি, এবং দ্বিতীয় Argument হিসেবে একটি Anonymous Function সাথে closure থাকতে পারে। যেমনঃ উপরোক্ত উদাহরণে আমাদের Home URL এর জন্য প্রথম আর্গুমেন্ট হিসেবে শুধু forward slash ( / ) ব্যবহার করি , যার দ্বারা Laravel route রুট ডোমেইনকে নির্দেশ করে। একই ভাবে About URL এর জন্য forward slash সাথে about (/about) এবং Contact URL এর জন্য forward slash সাথে contact(/contact) লিখি। আর তিনটি URL এর জন্যই দ্বিতীয় Argument হিসেবে একটি Anonymous Function ব্যবহার করি যার দ্বারা action কি হবে তা নির্ধারণ করি।

Laravel Route এবং URL Parameter নিয়ে কাজ

অবশ্যই, কখনও কখনও আপনাকে আপনার route মধ্যে URI এর segment গুলিকে receive বা capture করতে হবে। এটি করার জন্য Laravel Route এ দুটি উপায় আছে যার মাধ্যমে আপনি URL- এর মাধ্যমে পাঠানো Parameter গুলিকে Capture করতে পারেন।

  1. Required Parameters
  2. Optional Parameters

Required Parameters

অর্থাৎ আপনার URL এ অবশ্যই Parameter থাকতে হবে। ধরুন আপনাকে URL থেকে ইউজারদের নাম capture করতে হতে পারে । আপনাকে route এ Parameter define করে তা করতে হবে । একটি উদাহরণ দিয়ে যাক ।

// get the parameter of name
Route::get('students/{name}', function($name) {
        echo 'Students Name is ' . $name;
}); 

এখন আপনার ব্রাউজারে, আপনি নিচের মতো করে student name এ access করতে পারেন।


http://localhost:8000/students/Masud

Laravel Route Parameter

আর যদি URL এ কোনো Parameter না দেন বা খালি রাখেন, Laravel আপনাকে নিচের Message টি দিবে :

"Sorry, the page you are looking for could not be found."

একইভাবে আপনি একাধিক Required Parameter পাঠাতে পারেন, নিচের উদাহরণ লক্ষ্য করুন :

// get the parameter of name
Route::get('students/{name}/{age}', function($name,$age) {
        echo "Students Name is  $name and he is $age years old";
}); 

এখন আপনার ব্রাউজারে, আপনি নিচের মতো করে student name এবং তার age এ access করতে পারেন।


http://localhost:8000/students/Masud/30

Multiple Required Laravel Route Paramter

Optional Parameters

আপনি যদি আপনার URL এ এমন কিছু Parameter পাঠাতে চান , যা থাকতেও পারে আবার নাও থাকতে পারে। এই সব ক্ষেত্রে আপনাকে Laravel এর Optional Parameter System ব্যবহার করতে হবে। তখন URL এ এই প্যারামিটার গুলির থাকার আবশ্যকীয় নয়। আর এই Parameter গুলির নামের পরে “?” চিহ্ন দিতে হয়। নিম্নের কোডটি লক্ষ্য করুন :

Route::get('users/{name?}', function($name="Masud Alam") {
        echo 'User Name is ' . $name;
});

এখন আপনার URL এ যেই Parameter পাঠাবেন সেটা দেখাবে, অন্যথা default Parameter Masud Alam দেখাবে। নিম্নের ছবিতে লক্ষ্য করুন :

laravel Route with Optional Parameter

একইভাবে আপনি একাধিক Optional Parameter পাঠাতে পারেন, নিচের উদাহরণ লক্ষ্য করুন :

Route::get('users/{name?}/{age?}', function($name="Masud Alam",$age=30) {
        echo "User Name is $name and He is $age years Old";
});

এখন আপনার ব্রাউজারে, আপনি নিচের মতো করে user name এবং তার age এ access করতে পারেন।


http://localhost:8000/users

Multiple Optional Laravel Route Paramter

Larave Route এর মাধ্যমে MySQL Database Table থেকে Data Fetch করা :

Laravel Database table থেকে Data fetch করতে হলে আপনাকে প্রথমে Database এর host এর সাথে connect এবং Database Select করতে হবে। আর এর জন্য আপনাকে আপনার project এর root ফোল্ডারের .env ফাইল এ Database এর host, username, password এবং Database name বলে দিতে হবে। নিচের ছবিটি লক্ষ্য করুন :

Laravel Database Connection in .env file-

Note: .env file edit করার পর অবশ্যই php artisan সার্ভার টি রিস্টার্ট দিতে হবে। অথবা “php artisan config:clear” এই command টি run করতে হবে।

এবার নিম্নের কোডটি routes/web.php তে লিখুন :

Route::get('/getall', function()
{
$fetchData = DB::select('select * from students');
echo "<pre>";
print_r($fetchData);
echo "</pre>";
});

এখন আপনি আপনার ব্রাউজার এর Address bar এ http://localhost:8000/getall লিখে hit করুন , তাহলে আপনার route ঠিক নিম্নের screenshot এর মতো রেজাল্ট দেখাবে:

get all data from database using laravel route and env file

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।
One comment to “বাংলায় PHP LARAVEL FRAMEWORK পর্ব-৩ : Laravel Route Basics”
  1. Route::get(‘/’, function (){
    echo “This is Home Page”; //here ” was missing above
    });
    Route::get(‘/about’, function (){
    echo ” This is About Page”;
    });
    Route::get(‘/contact’, function (){
    echo ” This is Contact Page”;
    });

Leave a Reply

Your email address will not be published. Required fields are marked *