PHP-তে OOP-এ ট্রেইট পদ্ধতির এক্সেস মডিফায়ার পরিবর্তন

একটি ট্রেইটের ভিতরে, আপনি পদ্ধতিগুলির জন্য যেকোনো এক্সেস মডিফায়ার ব্যবহার করতে পারেন (যেমন public, private বা protected)। তবে প্রয়োজনে, ক্লাসের ভিতরেই এই মডিফায়ারটি পরিবর্তন করা যায় অন্য একটি মডিফায়ারে। এটি করার জন্য, use বডির ভিতরে as কীওয়ার্ডের পরে নতুন মডিফায়ার নির্দিষ্ট করতে হবে।

আসুন একটি উদাহরণ দিয়ে দেখি। ধরুন আমাদের নিম্নলিখিত ট্রেইটটি রয়েছে একটি প্রাইভেট মেথড সহ:

php<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

আসুন আমাদের ট্রেইটটিকে একটি ক্লাসে সংযুক্ত করি:

php<?php
  class Test
  {
    use TestTrait;
  }
?>

ক্লাসে মেথডটিকে পাবলিক হিসেবে পরিবর্তন করি:

php<?php
  class Test
  {
    use TestTrait {
      TestTrait::method as public;
    }
  }
?>

ক্লাসের বাইরে থেকে পাবলিক মেথডটির কাজ পরীক্ষা করা যাক:

php<?php
  $test = new Test;
  echo $test->method(); // আউটপুট দেবে '!!!'
?>