آموزش ساخت کلاس و شیء (Class & Object) در PHP
در مقاله قبلی از سایت پی اچ پی ساز با مفاهیم تئوری برنامهنویسی شیگرا (OOP) آشنا شدیم و دانستیم که کلاسها و اشیاء چه نقشی در ساختاردهی به کدهای ما دارند. اکنون در ادامه مباحث دستهبندی کلاس و شیء، زمان آن رسیده است که دست به کد شویم و به صورت کاملاً عملی، نحوه تعریف یک کلاس (Class) و ساخت اشیاء (Objects) از روی آن را در زبان PHP یاد بگیریم.
نحوه تعریف یک کلاس (Class) در PHP
کلاس در واقع یک قالب یا نقشه کلی است که تعیین میکند اشیاء ساخته شده از روی آن، چه اطلاعاتی در خود ذخیره کنند و چه رفتارهایی داشته باشند.
برای ساخت یک کلاس در PHP، از کلمه کلیدی class استفاده میکنیم و سپس نام کلاس را مینویسیم. طبق استانداردهای برنامهنویسی (PSR)، نام کلاسها معمولاً باید با حرف بزرگ شروع شود (PascalCase). بدنه کلاس نیز داخل آکولاد {} قرار میگیرد.
<?php
class User {
// ویژگیها و متدهای کلاس در اینجا نوشته میشوند
}
?>
اضافه کردن ویژگیها (Properties) و متدها (Methods)
یک کلاس خالی کاربرد چندانی ندارد. ما باید دادهها و توابع مربوطه را به آن اضافه کنیم:
-
ویژگیها (Properties): متغیرهایی هستند که در داخل کلاس تعریف میشوند و دادههای مربوط به شیء را نگهداری میکنند.
-
متدها (Methods): توابعی هستند که در داخل کلاس تعریف میشوند و وظیفه پردازش دادهها یا انجام یک رفتار خاص را بر عهده دارند.
به مثال زیر توجه کنید. ما کلاسی برای کاربران سیستم ایجاد میکنیم:
<?php
class User {
// تعریف ویژگیها (Properties)
public $name;
public $email;
// تعریف یک متد برای تنظیم نام کاربر
public function setName($newName) {
$this->name = $newName;
}
// تعریف یک متد برای دریافت نام کاربر
public function getName() {
return "نام کاربر: " . $this->name;
}
}
?>
کلمه کلیدی $this چیست؟ در کدهای بالا، متغیر ویژه $this را مشاهده میکنید. در برنامهنویسی شیگرا، $this به «شیء فعلی» اشاره میکند. وقتی مینویسیم $this->name، منظورمان این است که «ویژگیِ name متعلق به همین شیئی که اکنون در حال استفاده از آن هستیم» را انتخاب کن.
ساخت شیء (Object) از روی کلاس
تا اینجا ما فقط یک نقشه (کلاس) طراحی کردیم. این نقشه در حافظه سرور هیچ فضایی اشغال نمیکند تا زمانی که از روی آن یک «شیء واقعی» بسازیم. این کار اصطلاحاً Instantiation یا نمونهسازی نامیده میشود.
برای ساخت شیء در PHP، از کلمه کلیدی new استفاده میکنیم.
<?php
// ساخت دو شیء مجزا از کلاس User
$user1 = new User();
$user2 = new User();
?>
اکنون $user1 و $user2 دو شیء کاملاً مستقل هستند که هر دو از روی قالب User ساخته شدهاند. تغییر دادههای یکی، روی دیگری تاثیری نمیگذارد.
دسترسی به ویژگیها و متدها در خارج از کلاس
برای اختصاص دادن مقدار به ویژگیهای یک شیء یا فراخوانی متدهای آن از بیرونِ کلاس، از عملگر پیکان (->) استفاده میکنیم.
بیایید کدهایمان را کامل کنیم:
<?php
class User {
public $name;
public function setName($newName) {
$this->name = $newName;
}
public function getName() {
return $this->name;
}
}
// 1. ساخت شیء اول
$user1 = new User();
// مقداردهی با استفاده از متد
$user1->setName("علی محمدی");
// 2. ساخت شیء دوم
$user2 = new User();
// مقداردهی با استفاده از متد
$user2->setName("سارا احمدی");
// چاپ خروجیها
echo "کاربر اول: " . $user1->getName() . "<br>";
echo "کاربر دوم: " . $user2->getName() . "<br>";
// حتی میتوانیم مستقیما به ویژگیها دسترسی داشته باشیم (چون از نوع public هستند)
$user1->name = "رضا";
echo "نام جدید کاربر اول: " . $user1->name;
?>
نتیجهگیری
شما اکنون توانستید اولین کلاس خود را در PHP بنویسید و از روی آن اشیاء متعددی بسازید! فرایند ساخت کلاس (با کلمه کلیدی class) و نمونهسازی (با کلمه کلیدی new) پایه و اساس تمام پروژههای شیگرای مدرن است. در مقالات بعدی، با مباحث جذابتر و کاربردیتری مانند «متد سازنده» (Constructor) و «سطوح دسترسی» (Access Modifiers) آشنا خواهیم شد تا کلاسهای امنتر و حرفهایتری طراحی کنید.

بدون دیدگاه