লারাভেল (Laravel) ফ্রেমওয়ার্কে, কালেকশন (Collection) একটি শক্তিশালী টুল যা অ্যারে (Array) এবং বিভিন্ন ডেটা স্ট্রাকচার পরিচালনা করার কাজকে সহজ করে তোলে। এটি একটি বিশেষ ক্লাস যা ডেটা ম্যনিপুলেশন, ট্রান্সফরমেশন, ফিল্টারিং এবং সোর্টিং ইত্যাদি কাজগুলো খুব সহজভাবে করতে সহায়তা করে। কালেকশন সাধারণত লারাভেল মডেল থেকে রিটার্ন করা ডেটার উপর কাজ করে, কিন্তু আপনি যেকোনো অ্যারে বা কোলেকশন অবজেক্টের সাথে এটি ব্যবহার করতে পারেন।
কালেকশন (Collection) হল একটি বিশেষ ডেটা স্ট্রাকচার যা অ্যারের মতো দেখতে হলেও এতে অনেক বেশি সুবিধা রয়েছে। এটি অনেকগুলি ইন-বিল্ট মেথড সরবরাহ করে যা ডেটা ট্রান্সফরমেশন ও ম্যানিপুলেশনকে আরও শক্তিশালী এবং সহজ করে তোলে।
কালেকশন তৈরি করার জন্য, লারাভেল collect()
হেল্পার ফাংশন ব্যবহার করে একটি কালেকশন ইনস্ট্যান্স তৈরি করা হয়। উদাহরণস্বরূপ:
$collection = collect([1, 2, 3, 4, 5]);
এটি একটি কালেকশন তৈরি করবে যার মধ্যে ১ থেকে ৫ পর্যন্ত মান রয়েছে।
লারাভেল কালেকশন বেশ কয়েকটি শক্তিশালী মেথড প্রদান করে যা ডেটা ফিল্টার, ট্রান্সফর্ম, এবং পরিচালনা করতে সাহায্য করে। কিছু গুরুত্বপূর্ণ মেথড হলো:
all()
এটি কালেকশনের সমস্ত আইটেম ফিরিয়ে দেয়। উদাহরণ:
$collection = collect([1, 2, 3, 4, 5]);
$allItems = $collection->all();
// আউটপুট: [1, 2, 3, 4, 5]
filter()
এই মেথডটি একটি কন্ডিশন দিয়ে কালেকশনের আইটেমগুলো ফিল্টার করতে ব্যবহার হয়। উদাহরণ:
$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->filter(function ($value) {
return $value > 3;
});
// আউটপুট: [4, 5]
map()
এটি কালেকশনের প্রতিটি আইটেমে একটি ফাংশন প্রয়োগ করে একটি নতুন কালেকশন তৈরি করে। উদাহরণ:
$collection = collect([1, 2, 3, 4, 5]);
$mapped = $collection->map(function ($value) {
return $value * 2;
});
// আউটপুট: [2, 4, 6, 8, 10]
reduce()
এই মেথডটি কালেকশনের আইটেমগুলিকে একত্রিত করে একটি একক মান তৈরি করে। উদাহরণ:
$collection = collect([1, 2, 3, 4, 5]);
$sum = $collection->reduce(function ($carry, $item) {
return $carry + $item;
});
// আউটপুট: 15
pluck()
এটি কালেকশন থেকে নির্দিষ্ট কী বা প্রপার্টি বের করার জন্য ব্যবহৃত হয়। উদাহরণ:
$collection = collect([
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'Doe', 'age' => 20]
]);
$names = $collection->pluck('name');
// আউটপুট: ['John', 'Jane', 'Doe']
আপনি চাইলে কাস্টম মেথডও তৈরি করতে পারেন যা কালেকশন থেকে ডেটা ম্যানিপুলেট করবে। উদাহরণস্বরূপ, একটি কাস্টম মেথড তৈরি করতে নিম্নলিখিত কোড ব্যবহার করা যেতে পারে:
$collection = collect([1, 2, 3, 4, 5]);
$custom = $collection->filter(function ($value) {
return $value % 2 == 0; // শুধুমাত্র ইভেন নম্বরগুলো রাখবে
});
// আউটপুট: [2, 4]
লারাভেল কালেকশন (Collection) একটি অত্যন্ত শক্তিশালী এবং নমনীয় টুল যা ডেটা পরিচালনা করার কাজকে অনেক সহজ করে তোলে। এর সাহায্যে ডেটাকে দ্রুত এবং কার্যকরীভাবে ম্যানিপুলেট করা সম্ভব, যা ডেভেলপারদের কাজের গতি বাড়ায় এবং কোড লেখার সহজতা প্রদান করে।
Read more