إنشاء دوال متكررة في الكلاس باستخدام الوراثة في PHP
تمت الكتابة بواسطة: عبد الحكيم
تارخ آخر تحديث: 19 ديسمبر 2024محتوى المقال
- تعريف الفئة الأساسية مع الدوال المتكررة
- وراثة الفئة الأساسية في الفئات الفرعية
- إضافة دوال مخصصة في الفئات الفرعية
- استخدام الدوال المتكررة والدوال المخصصة
- الخلاصة
الوراثة في البرمجة الكائنية التوجه (OOP) في PHP تُعد من الأدوات القوية لإعادة استخدام الكود. من خلال الوراثة، يمكن لفئات (Classes) متعددة أن تشترك في دوال (Methods) متكررة يتم تعريفها في فئة أساسية (Parent Class)، مما يساهم في تقليل التكرار وتنظيم الكود بشكل أكثر كفاءة.
تعريف الفئة الأساسية مع الدوال المتكررة
لنفترض أن لدينا تطبيقًا يتعامل مع عدة أنواع من المركبات، مثل السيارات والشاحنات والدراجات. يمكننا تعريف فئة أساسية تسمى Vehicle
تحتوي على الدوال المشتركة بين جميع أنواع المركبات، مثل دالة startEngine
وstopEngine
:
<?php
class Vehicle {
# دالة لتشغيل المحرك
public function startEngine() {
return "المحرك يعمل";
}
# دالة لإيقاف المحرك
public function stopEngine() {
return "المحرك متوقف";
}
}
?>
في هذا المثال، الفئة Vehicle
تحتوي على دالتين: startEngine
وstopEngine
، واللتين يمكن أن تكونا مشتركتين بين جميع المركبات.
وراثة الفئة الأساسية في الفئات الفرعية
الآن، يمكننا إنشاء فئات فرعية مثل Car
وTruck
وBike
ترث من الفئة Vehicle
لتستفيد من الدوال المتكررة:
<?php
# الفئة Car ترث من الفئة Vehicle
class Car extends Vehicle {
public $numDoors;
}
# الفئة Truck ترث من الفئة Vehicle
class Truck extends Vehicle {
public $payloadCapacity;
}
# الفئة Bike ترث من الفئة Vehicle
class Bike extends Vehicle {
public $type;
}
?>
كل من الفئات Car
وTruck
وBike
ترث الدوال startEngine
وstopEngine
من الفئة Vehicle
، مما يلغي الحاجة لتكرار تعريف هذه الدوال في كل فئة على حدة.
إضافة دوال مخصصة في الفئات الفرعية
يمكن لكل فئة فرعية أن تضيف دوال مخصصة خاصة بها بالإضافة إلى الدوال التي ترثها من الفئة الأساسية. على سبيل المثال:
<?php
# الفئة Car تضيف دالة فتح الأبواب
class Car extends Vehicle {
public function openDoors() {
return "الأبواب مفتوحة";
}
}
# الفئة Truck تضيف دالة تحميل البضائع
class Truck extends Vehicle {
public function loadCargo() {
return "البضائع محملة";
}
}
# الفئة Bike تضيف دالة بدء ركوب الدراجة
class Bike extends Vehicle {
public function startRiding() {
return "بدء ركوب الدراجة";
}
}
?>
كل فئة فرعية تضيف دالة مخصصة تعبر عن سلوك معين يميزها. الفئة Car
تحتوي على دالة openDoors
، والفئة Truck
تحتوي على دالة loadCargo
، والفئة Bike
تحتوي على دالة startRiding
.
استخدام الدوال المتكررة والدوال المخصصة
الآن، يمكننا استخدام الفئات الفرعية للاستفادة من الدوال المتكررة والدوال المخصصة:
<?php
# إنشاء كائن من الفئة Car واستخدام الدوال
$myCar = new Car;
echo $myCar->startEngine(); # دالة موروثة
echo $myCar->openDoors(); # دالة مخصصة
# إنشاء كائن من الفئة Truck واستخدام الدوال
$myTruck = new Truck;
echo $myTruck->startEngine(); # دالة موروثة
echo $myTruck->loadCargo(); # دالة مخصصة
# إنشاء كائن من الفئة Bike واستخدام الدوال
$myBike = new Bike;
echo $myBike->startEngine(); # دالة موروثة
echo $myBike->startRiding(); # دالة مخصصة
?>
النتائج ستظهر بالشكل التالي:
- المحرك يعمل (موروثة)
- الأبواب مفتوحة (مخصصة)
- المحرك يعمل (موروثة)
- البضائع محملة (مخصصة)
- المحرك يعمل (موروثة)
- بدء ركوب الدراجة (مخصصة)
الخلاصة
استخدام الوراثة في PHP لإنشاء دوال متكررة في الفئات الأساسية يسمح بإعادة استخدام الكود وتقليل التكرار، مما يجعل الكود أكثر نظافة وأسهل في الصيانة. يمكن للفئات الفرعية وراثة هذه الدوال وإضافة دوال مخصصة خاصة بها لتعزيز الوظائف وإضافة المزيد من السلوكيات.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- كيفية الاتصال بقاعدة بيانات MySQL باستخدام PHP
- إنشاء وإدارة الجداول في MySQL باستخدام PHP
- كيفية إدراج البيانات في قاعدة البيانات باستخدام PHP
- تحديث البيانات في قاعدة البيانات باستخدام PHP
- حذف البيانات من قاعدة البيانات باستخدام PHP
- استخدام العبارات المجهزة (Prepared Statements) في PHP
- حماية البيانات المدخلة في قاعدة البيانات من SQL Injection
- كيفية تنفيذ عمليات البحث والاستعلامات في PHP
- استخدام PDO و MySQLi للتعامل مع قواعد البيانات في PHP
- أفضل الممارسات لحماية تطبيقات PHP