পিএইচপি OOP তে মেথড এবং প্রোপার্টি সমুহকে চেইনিং এর মাধ্যমে একই কমান্ডে কয়েকটি কার্য সম্পাদন করা যায়।
প্রোপার্টি এবং মেথড চেইনিং
পূর্ববর্তী অধ্যায়ে আমরা $this কীওয়ার্ড ব্যবহার করে ক্লাস স্কোপ থেকে প্রোপার্টি এবং মেথড অ্যাক্সেস করা শিখেছিলাম। এই অধ্যায়ে আমরা শিখবো, যখন কোনো মেথড $this কীওয়ার্ড রিটার্ন করে তখন ঐ ক্লাস এর মেথডসমূহ স্বয়ংক্রিয়ভাবে একটির সাথে অন্যটি যুক্ত হয়ে যায় অর্থাৎ চেইন সৃষ্টি হয়।
উদাহরণস্বরূপঃ নিম্নের Truck ক্লাসটি দেখুন। নিম্নের প্রোগ্রামটির মাধ্যমে একটি চলমান ট্রাকের টাঙ্কে কি পরিমান জ্বালানি আছে তা পরিমাপ করতে যাচ্ছি। এক্ষেত্রে জ্বালানির পরিমান দুটি প্যারামিটার এর উপর নির্ভরশীল। যথা- যাত্রা শুরুর সময় ট্রাকের টাঙ্কিতে কি পরিমান জ্বালানি লোড করা হয়েছিল এবং ট্রাকটি কয় মাইল পথ অতিক্রম করেছে।
জ্বালানির পরিমান নির্ণয়ের জন্য প্রথমেই আমরা Truck ক্লাসের মধ্যে একটি public প্রোপার্টি $fuelInTank ব্যবহার করবোঃ
kt_satt_skill_example_id=603
এইবার আমরা Truck ক্লাসে দুইটি মেথড যুক্ত করবো। প্রথম মেথড fuel() ট্রাকের টাঙ্কিতে জ্বালানির পরিমান গ্যালনে যুক্ত করবে। আর দ্বিতীয় মেথড totalRide() নির্দিষ্ট দুরত্ব অতিক্রম করার পর কি পরিমান জ্বালানি শেষ হয়েছে তা হিসাব করবে এবং ট্রাকের ট্রাঙ্কি থেকে এটি বিয়োগ করবে।
kt_satt_skill_example_id=604
যেহেতু আমরা আমাদের কোডগুলো অধিক স্বচ্ছ এবং মার্জিত আকারে চাই, তাই আমরা প্রোপার্টি এবং মেথড গুলো চেইনিং এর মাধ্যমে একত্রিত করবো। প্রোপার্টি বা মেথড চেইন এর জন্য ড্যাশ-এরো চিহ্ন ব্যবহৃত হয়ঃ
kt_satt_skill_example_id=605
কোড এর ব্যাখ্যাঃ ১০ গ্যালন জ্বালানিতে ৫০ মাইল ড্রাইভিং করার পর কি পরিমান জ্বালানি বাকি আছে তা বলে দিবে।
চেইন এর কাজ সম্পাদনের জন্য মেথডসমূহকে অবশ্যই অবজেক্ট রিটার্ন করতে হবে। আরা যেহেতু আমরা ক্লাস এর মধ্য থেকে অবজেক্ট ব্যবহার করতে চাচ্ছি, সুতরাং মেথডসমূহকে $this কীওয়ার্ড রিটার্ন করতে হবে।
নিচের কোডে লক্ষ্য করলে দেখবেন, চেইন এর কাজ সম্পন্ন করার জন্য কিভাবে প্রত্যেকটি মেথড থেকে অব্জেক্ট হিসাবে $this কিওয়াডকে রিটার্ন করানো হয়েছে।
kt_satt_skill_example_id=606
এখন আমরা Truck ক্লাসটির একটি অবজেক্ট তৈরি করবো এবং দেখবো ট্রাকটি ১০ গ্যালন তৈলে ৫০ মাইল যাওয়ার পর আর কি পরিমান তৈল বাকি আছে।
kt_satt_skill_example_id=607
kt_satt_skill_example_id=608
Read more