Anonymous Classes PHP 7 এ প্রবর্তিত একটি বৈশিষ্ট্য, যা কোনো নাম ছাড়াই ক্লাস তৈরি করতে দেয়। এগুলো মূলত এমন ক্লাস যেখানে কেবলমাত্র একবার ব্যবহার করার উদ্দেশ্যে তৈরি করা হয় এবং একটি নির্দিষ্ট স্কোপ বা কন্টেক্সটে তাৎক্ষণিক কাজ সম্পন্ন করতে সহায়ক। অ্যানোনিমাস ক্লাস মূলত ক্লাসের অবজেক্ট তৈরি করে, কিন্তু সেই ক্লাসটি কোথাও সংরক্ষণ বা পুনরায় ব্যবহারের জন্য সংজ্ঞায়িত করা হয় না।
Anonymous Classes, মেমরি এবং কোডের গঠন সংরক্ষণে সহায়ক, কারণ এতে অতিরিক্ত ক্লাস তৈরি করতে হয় না। এ ধরনের ক্লাস মূলত দ্রুত এবং তাৎক্ষণিক কাজের জন্য ব্যবহার করা হয়।
Anonymous Class এর ব্যবহার
Anonymous Class সাধারণত অবজেক্ট ইনস্ট্যান্স তৈরির সময় new class কিওয়ার্ডের মাধ্যমে ব্যবহার করা হয়।
সাধারণ গঠন:
$object = new class {
// properties and methods
};Anonymous Class এর উদাহরণ
১. সাধারণ উদাহরণ
<?php
$object = new class {
public function greet() {
return "Hello from Anonymous Class!";
}
};
echo $object->greet(); // আউটপুট হবে: Hello from Anonymous Class!
?>এখানে, একটি অ্যানোনিমাস ক্লাস তৈরি করা হয়েছে এবং greet() মেথড ব্যবহার করা হয়েছে। এই ক্লাসের কোনো নাম নেই, কারণ এটি কেবল এই একবারের জন্য ব্যবহৃত হবে।
২. ইন্টারফেস ইমপ্লিমেন্ট করা
Anonymous Class-এ ইন্টারফেসও ইমপ্লিমেন্ট করা যায়।
<?php
interface Logger {
public function log($message);
}
$logger = new class implements Logger {
public function log($message) {
echo "Logging message: $message";
}
};
$logger->log("This is an anonymous class example."); // আউটপুট: Logging message: This is an anonymous class example.
?>এখানে, Anonymous Class Logger ইন্টারফেস ইমপ্লিমেন্ট করেছে এবং log() মেথডটি ব্যবহার করেছে।
৩. কনস্ট্রাক্টর সহ Anonymous Class
Anonymous Class-এ কনস্ট্রাক্টরও ব্যবহার করা যায়। নিচের উদাহরণে আমরা কনস্ট্রাক্টরে একটি প্রোপার্টি সেট করেছি।
<?php
$object = new class("Anonymous Property") {
private $property;
public function __construct($property) {
$this->property = $property;
}
public function getProperty() {
return $this->property;
}
};
echo $object->getProperty(); // আউটপুট: Anonymous Property
?>এখানে, কনস্ট্রাক্টরের মাধ্যমে $property সেট করা হয়েছে এবং getProperty() মেথডের মাধ্যমে সেই মানটি ফেরত দেয়া হয়েছে।
Anonymous Class এর ব্যবহার ক্ষেত্র
- তাত্ক্ষণিক এবং একবারের ব্যবহার: এমন পরিস্থিতিতে যেখানে একটি ক্লাসের অবজেক্ট কেবলমাত্র একবার ব্যবহার করতে হবে, সেক্ষেত্রে Anonymous Class ব্যবহার করা হয়।
- ডাইনামিক এবং দ্রুত কোডিং: Anonymous Class কোডকে আরও দ্রুত এবং ডাইনামিক করতে সহায়ক, বিশেষ করে বড় ক্লাসের পরিবর্তে ছোট ছোট অস্থায়ী অবজেক্ট তৈরি করতে।
- ইনলাইন ক্লাস ইমপ্লিমেন্টেশন: কোনো নির্দিষ্ট ইন্টারফেস বা ক্লাসকে ইমপ্লিমেন্ট বা এক্সটেন্ড করার জন্য অস্থায়ী সমাধান হিসেবে Anonymous Class ব্যবহার করা যেতে পারে।
Anonymous Class এর সুবিধা
- কোডের সরলতা: Anonymous Class ব্যবহারে অতিরিক্ত ক্লাস ডিক্লেয়ার করার প্রয়োজন হয় না, যা কোডকে সরল করে।
- মেমোরি সংরক্ষণ: কেবলমাত্র একবারের জন্য ব্যবহৃত হবে এমন ক্লাসের জন্য আলাদা মেমোরি বরাদ্দের প্রয়োজন হয় না।
- দ্রুত উন্নয়ন: ছোট ছোট কাজের জন্য দ্রুত ক্লাস তৈরি করতে সহায়ক, যা দ্রুত কোডিং এবং উন্নয়নে সহায়ক।
- লজিক্যাল কোড লুকানো: একটি নির্দিষ্ট স্কোপের মধ্যে ছোট ক্লাস তৈরি করে কাজ সম্পন্ন করতে পারে, যা কোডকে লজিক্যালি ভালোভাবে সংগঠিত রাখতে সহায়ক।
Anonymous Class এবং Named Class এর পার্থক্য
| বৈশিষ্ট্য | Named Class | Anonymous Class |
|---|---|---|
| নাম | নাম নির্ধারণ করতে হয় | নাম ছাড়া ব্যবহৃত হয় |
| পুনঃব্যবহারযোগ্যতা | বারবার ব্যবহার করা যায় | কেবলমাত্র একবার ব্যবহার করা হয় |
| ডিক্লারেশন পদ্ধতি | আলাদা ক্লাস হিসাবে ডিক্লেয়ার করা | new class কিওয়ার্ড দিয়ে তৈরি করা |
| কোডের সরলতা | বড় এবং জটিল হতে পারে | কোডকে সহজ এবং দ্রুত করে |
| ব্যবহার ক্ষেত্র | বড় এবং পুনঃব্যবহারযোগ্য কাজের জন্য | একবারের কাজের জন্য |
সারসংক্ষেপ
Anonymous Classes PHP 7-এ প্রবর্তিত একটি বৈশিষ্ট্য, যা একটি নির্দিষ্ট স্কোপ বা কন্টেক্সটে একবারের জন্য অস্থায়ী ক্লাস তৈরি করতে ব্যবহৃত হয়। এটি মূলত দ্রুত কোডিং এবং ছোট ছোট কাজের জন্য ব্যবহার করা হয়, যেখানে আলাদা ক্লাস তৈরি করার প্রয়োজন নেই। Anonymous Classes কোডকে সহজ, সংক্ষিপ্ত এবং দ্রুত করতে সহায়ক এবং ছোট স্কোপের কাজগুলোতে কার্যকর।
Read more