পিএইচপি OOP Class
Class প্রোগ্রামার-ডিফাইন্ড ডেটা টাইপ। যার মধ্যে লোকাল ডেটা এবং লোকাল ফাংশন থাকে। আপনি একটি class
কে টেমপ্লেট হিসাবে ধরে একই ধরনের অনেক অবজেক্ট(instance of class) তৈরি করতে পারেন।
কিভাবে class
তৈরি করবেন?
একটি class
তৈরির জন্য অনেক গুলো কোড এর সমন্বয়ে একটি গ্রুপ অব কোড তৈরি করতে হবে যার মাধ্যমে আপনি একটি নির্দিষ্ট বিষয়কে হ্যান্ডেল বা পরিচালনা করতে পারবেন।
যেমন- একটি ব্লগ এর কথাই ধরুন। আপনি ব্লগের ইউজার সংক্রান্ত সকল কোড এর সমন্বয়ে একটি class, পোস্ট সম্পর্কিত সকল কোড এর সমন্বয়ে অন্য একটি class
এবং কমেন্ট সম্পর্কিত সকল কোড এর সমন্বয়ে ভিন্ন আরেকটি class ক্লাস তৈরি করতে পারেন।
কোডের গ্রুপ নিয়ে class
তৈরি করলে কোড শুধু পুনঃব্যবহারযোগ্যই হয় না, বরং কোডগুলো পরিচর্যা এবং পরিবর্তন করাও সহজ হয়ে যায়।
class নামকরণঃ একটি class
এর নামকরন এর জন্য একটি একক নাম ব্যবহার করা হয়। Class এর নাম এর প্রথম বর্ণটি বড় হাতের হতে হয়।
উদাহরণস্বরূপঃ আমরা ব্লগের ইউজার নিয়ন্ত্রণ এর কোড গ্রুপ নিয়ে একটি User ক্লাস, পোস্ট নিয়ন্ত্রণের কোড গ্রুপ নিয়ে একটি Post ক্লাস এবং কমেন্ট এর কোড গ্রুপ নিয় একটি Comment ক্লাস তৈরি করতে পারি।
Class তৈরির সিনট্যাক্সঃ
<?php
class ClassName{
// এখানে প্রোপার্টি যোগ করূন
// এখানে মেথড যোগ করুন
}
?>
এখানে আমরা class
কিওয়ার্ড এর মাধ্যমে ClassName নামে একটি ক্লাস ডিফাইন করেছি। class
এর নামের প্রথম অক্ষরটি বড়-হাতের অক্ষরে লিখেছি এবং class
নামে দুটি শব্দ থাকায় দুটি শব্দেরই প্রথম অক্ষর বড়-হাতের অক্ষরে লিখেছি। এই পদ্ধতিকে upper camel case বলে। class
নামকরনের সময় একাধিক শব্দ ব্যবহার করলে আমরা এই পদ্ধতি ব্যবহার করবো।
class
এ কিভাবে প্রোপার্টি যুক্ত করবেন?
আমরা একটি class
এর মধ্যে ব্যবহৃত ভ্যারিয়েবল সমুহকে প্রোপার্টি বলে থাকি। প্রোপার্টিসমুহ অন্য যে কোনো ভ্যারিয়েবলের মতই স্ট্রিং, ইন্টিজার, বুলিয়ান(true অথবা false) টাইপের মান গ্রহণ করতে পারে।
নিম্নের উদাহরনে আমরা Greeting class
এ দুটি প্রোপার্টি যুক্ত করবোঃ
<?php
class Greeting{
// public প্রোপার্টি
public $message;
public $welcomeMsg = "Welcome Guest";
}
?>
উপরের প্রোগ্রামে লক্ষ্য করলে দেখবেন, class
এর মধ্যে প্রোপার্টি নামের পূর্বে public
কিওয়ার্ড ব্যবহার করা হয়েছে। এটি ইউজারকে প্রোপার্টি এক্সেস এর ক্ষমতা প্রদান করে। public
কিওয়ার্ড সম্মন্ধে আরও জানতে এক্সেস মোডিফায়ার অধ্যায় ভিজিট করুন।
class
ভ্যারিয়েবলের নাম অন্যান্য ভ্যারিয়েবলের মতই ছোট-হাতের অক্ষর দিয়ে শুরু হয়। আর নামের মধ্যে যদি একাধিক শব্দ থাকে সেক্ষেত্রে প্রথম শব্দের প্রথম অক্ষরটি ছোট হাতের রেখে বাকী শব্দগুলোর জন্য আপনি camel case পদ্ধতি ব্যবহার করতে পারেন। যেমন- welcomeMsg।
ডিফল্ট ভ্যালুসহ অথবা ডিফল্ট ভ্যালু ছাড়াও প্রোপার্টি ডিফাইন্ড করা যায়। যেমন- উপরের উদাহরনে আমরা দুইটি প্রোপার্টি ডিফাইন করেছি। এদের মধ্যে একটির ডিফল্ট মান নির্ধারন করে দিয়েছি ($welcomeMsg = "Welcome Guest";) এবং অন্যটির ($message) ডিফল্ট মান নাই।
Class এ কিভাবে মেথড যুক্ত করবেন?
আমরা একটি class
এর মধ্যে ব্যবহৃত ফাংশন সমুহকে মেথড বলে থাকি। মেথড সমুহ অন্য যে কোনো ফাংশনের মতই কাজ করে।
নিম্নের উদাহরণে আমরা Greeting class
এ একটি মেথড যুক্ত করবোঃ
<?php
class Greeting{
// public ফাংশন
public function message(){
echo "Welcome Guest";}
}
?>
উপরের উদাহরনে লক্ষ্য করলে দেখবেন, class এর মধ্যে message() নামে একটি মেথড ডিফাইন করা হয়েছে।
মেথড এর পূর্বে public
কিওয়ার্ড ব্যবহার করা হয়েছে। এটি ইউজারকে প্রোপার্টি এক্সেস এর ক্ষমতা প্রদান করে। public
কিওয়ার্ড সম্মন্ধে আরও জানতে এক্সেস মোডিফায়ার অধ্যায় ভিজিট করুন।
class
ফাংশনের নাম অন্যান্য ফাংশনের মতই ছোট-হাতের অক্ষর দিয়ে শুরু হয়। নামের মধ্যে যদি একাধিক শব্দ থাকে তাহলে প্রথম শব্দের প্রথম অক্ষরটি ছোট হাতের রেখে বাকী শব্দগুলোর জন্য আপনি camel case পদ্ধতি ব্যবহার করতে পারেন। যেমন- welcomeMsg()।
class এর Object তৈরি
আমরা একটি class থেকে নিজস্ব কিছু প্রোপার্টি সম্পন্ন বিভিন্ন Object তৈরি করতে পারি।
Object তৈরির সিনট্যাক্সঃ
new ClassName();
Class এর Object তৈরি করতে আমরা সাধারণত new
কিওয়ার্ড ব্যবহার করি। অবজেক্ট তৈরির এই প্রক্রিয়া আমাদের কাছে instantiation হিসাবেও বেশ পরিচিত।
আমরা একই class এর একাধিক Object তৈরি করতে পারিঃ
$variable1 = new ClassName();
$variable2 = new ClassName();
<?php
class Greeting{
//public ফাংশন
public function message(){
echo "Welcome Guest";}
}
// একটি অবজেক্ট(object) তৈরি
$greeting = new Greeting();
?>
পরবর্তী অধ্যায়ে আমরা অবজেক্ট সম্মন্ধে আরও বিস্তারিত জানবো।