কম্পিউটার

পিএইচপি অটোলোডিং ক্লাস


পরিচয়

অন্য পিএইচপি স্ক্রিপ্টে সংজ্ঞায়িত শ্রেণী ব্যবহার করার জন্য, আমরা এটিকে অন্তর্ভুক্ত বা প্রয়োজনীয় বিবৃতি সহ অন্তর্ভুক্ত করতে পারি। যাইহোক, PHP-এর স্বয়ংক্রিয় লোডিং বৈশিষ্ট্যের এমন স্পষ্ট অন্তর্ভুক্তির প্রয়োজন নেই। পরিবর্তে, যখন একটি ক্লাস ব্যবহার করা হয় (তার বস্তু ঘোষণা করার জন্য) পিএইচপি পার্সার স্বয়ংক্রিয়ভাবে লোড করে, যদি এটি spl_autoload_register() এর সাথে নিবন্ধিত হয় ফাংশন এইভাবে যেকোন সংখ্যক ক্লাস নিবন্ধন করা যাবে। এইভাবে পিএইচপি পার্সার ত্রুটি নির্গত করার আগে ক্লাস/ইন্টারফেস লোড করার একটি শেষ সুযোগ পায়।

সিনট্যাক্স

spl_autoload_register(function ($class_name) {
   include $class_name . '.php';
});

ক্লাসটি তার সংশ্লিষ্ট .php ফাইল থেকে লোড করা হবে যখন এটি প্রথমবার ব্যবহার করা হবে

অটোলোডিং উদাহরণ

এই উদাহরণটি দেখায় যে কীভাবে একটি ক্লাস অটোলোডিংয়ের জন্য নিবন্ধিত হয়

উদাহরণ

<?php
spl_autoload_register(function ($class_name) {
   include $class_name . '.php';
});
$obj = new test1();
$obj2 = new test2();
echo "objects of test1 and test2 class created successfully";
?>

আউটপুট

এটি নিম্নলিখিত ফলাফল তৈরি করবে। −

objects of test1 and test2 class created successfully

যাইহোক, যদি অনুরূপ .php ফাইলে ক্লাস সংজ্ঞা পাওয়া না যায়, তাহলে নিম্নলিখিত ত্রুটি প্রদর্শিত হবে।

Warning: include(): Failed opening 'test10.php' for inclusion (include_path='C:\xampp\php\PEAR') in line 4
PHP Fatal error: Uncaught Error: Class 'test10' not found

ব্যতিক্রম হ্যান্ডলিং সহ অটোলোডিং

উদাহরণ

<?php
spl_autoload_register(function($className) {
   $file = $className . '.php';
   if (file_exists($file)) {
      echo "$file included\n";
      include $file;
   } else {
      throw new Exception("Unable to load $className.");
   }
});
try {
   $obj1 = new test1();
   $obj2 = new test10();
} catch (Exception $e) {
   echo $e->getMessage(), "\n";
}
?>

আউটপুট

এটি নিম্নলিখিত ফলাফল তৈরি করবে। −

Unable to load test1.

  1. PHP-এ ইন্টারফেস ব্যাখ্যা কর।

  2. পিএইচপি-তে বিমূর্ত শ্রেণী ব্যাখ্যা কর।

  3. PHP-তে get_class_methods() ফাংশন

  4. PHP-তে class_exists() ফাংশন