Object & Classes in PHP
Object & Classes in PHP
قائمة المصطلحات والتعريفات:
المقدمة:
تعتبر الكائنات والفئات من أهم المفاهيم التي يجب على المطورين فهمها بشكل جيد. تسمح هذه المفاهيم بتنظيم الكود, وإعادة استخدامها بسهولة
تهدف الوثيقة إلى توضيح مفهوم الكائنات والكلاسات في لغة البرمجة PHP بشكل مبسط، مع تقديم أمثلة
ما هي الكائنات والفئات (class & object):
الكائنات (Objects)
الكائن هو جزء مستقل يحتوي على بيانات ووظائف تتعلق بها. يمكن اعتباره مثيلاً (instance) لفئة معينة.
الفئات (Classes):
الفئة هي قالب أو مخطط يمكن من خلاله إنشاء كائنات. تحتوي الفئة على خصائص (Attributes) وطرق (Methods) تحدد سلوك الكائنات التي تنتمي إليها.
إنشاء الفئات والكائنات في PHP:
لإنشاء فئة في PHP، نستخدم الكلمة المحجوزة class متبوعة باسم الفئة. لإنشاء كائن من هذه الفئة، نستخدم الكلمة المحجوزة new متبوعة باسم الفئة.
<?php
class Home {
// خصائص الفئة
public $color;
public $model;
// طريقة البناء
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
// عرض تفاصيل المنزل
public function displayDetails() {
return "This Home is a " . $this->color . " " . $this->model . ".";
}
}
// إنشاء كائن من الفئة Home
$myHome = new Home("red", "Smart");
echo $myHome->displayDetails();
?>
الخصائص والطرق في الفئات:
الخصائص (Properties):
هي المتغيرات التي يتم تعريفها داخل الفئة وتصف حالة الكائن.
الطرق (Methods):
هي الدوال التي يتم تعريفها داخل الفئة وتحدد سلوك الكائن.
الوراثة في PHP
الوراثة هي مفهوم يسمح بإنشاء فئات جديدة تعتمد على فئات موجودة، مما يمكننا من إعادة استخدام الشيفرة وتوسيعها.
<?php
class ElectricHome extends Home {
public $batteryLife;
public function __construct($color, $model, $batteryLife) {
parent::__construct($color, $model); // هنا يتم استدعاء constructor الاب
$this->batteryLife = $batteryLife;
}
public function displayDetails() {
return parent::displayDetails() . " It has a battery life of " . $this->batteryLife . " hours.";
}
}
$myElectricHome = new ElectricHome("blue", "Smart small", 24);
echo $myElectricHome->displayDetails();
?>
Magic Methods:
هي طرق خاصة تبدأ بشرطتين سفليتين (__)، وتستخدم لأغراض خاصة مثل البناء والتدمير والتفاعل مع الخصائص والطرق غير الموجودة.
<?php
class Test {
private $data = array();
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
return isset($this->data[$name]) ? $this->data[$name] : null;
}
}
$obj = new Test();
$obj->name = "Muhmad Omar";
echo $obj->name; // Muhmad Omar
?>
تعددية الأشكال (Polymorphism) في PHP
تعددية الأشكال هي أحد المبادئ الأساسية في البرمجة كائنية التوجه (OOP)، وتسمح للكائنات من فئات مختلفة بالاستجابة لنفس النداء بطرق مختلفة. بمعنى آخر، يمكن استخدام نفس اسم الدالة (Method) لكن بسلوك مختلف حسب الفئة التي تنتمي إليها.
في PHP، تتحقق تعددية الأشكال غالبًا من خلال الوراثة وإعادة تعريف الطرق (Method Overriding)، حيث تقوم الفئة الابنة بتقديم تنفيذ خاص بها لطريقة موجودة في الفئة الأب.
مثال على تعددية الأشكال في PHP
<?php
class Home {
public function getEnergySource() {
return "Generic energy source";
}
}
class ElectricHome extends Home {
public function getEnergySource() {
return "Electric energy";
}
}
class SolarHome extends Home {
public function getEnergySource() {
return "Solar energy";
}
}
// استخدام تعددية الأشكال
$homes = [
new Home(),
new ElectricHome(),
new SolarHome()
];
foreach ($homes as $home) {
echo $home->getEnergySource() . "<br>";
}
?>
رغم أن جميع الكائنات يتم التعامل معها على أنها من نوع Home،
إلا أن PHP تستدعي التنفيذ المناسب للدالة حسب نوع الكائن الفعلي.
فائدة تعددية الأشكال
تسهيل توسيع النظام دون تعديل الكود القديم
تقليل الاعتمادية بين الفئات
جعل الكود أكثر مرونة وقابلية للصيانة
دعم مبدأ Open/Closed Principle (مفتوح للتوسعة، مغلق للتعديل)
المراجع
ليست هناك تعليقات: