OOP PHP جدول المحتويات
مزايا OOP PHP
- تحسين تنظيم وصيانة الكود: تُنظم OOP الكود إلى مكونات قابلة لإعادة الاستخدام، مما يجعله أسهل في إدارة وتحديث التطبيقات المعقدة.
- التكديس: تحمي الكائنات بياناتها من الوصول الخارجي المباشر، مما يعزز سلامة البيانات ويمنع التعديلات غير المقصودة.
- إعادة استخدام الكود: يمكن إنشاء كائنات متعددة من نفس الفئة، مما يقلل من تكرار الكود ويوفر وقت التطوير.
- الوراثة: يمكن للفئات الجديدة أن ترث خصائص وطرق من الفئات الموجودة، مما يشجع على إعادة استخدام الكود ويخلق علاقات هرمية.
- تعدد الأشكال: يمكن معاملة كائنات من فئات مختلفة على أنها كائنات من فئة أصل مشتركة، مما يمكّن من إنشاء كود مرن يمكنه العمل مع أنواع كائنات مختلفة.
المفاهيم الأساسية في OOP PHP
- الفئات: هي خطط إنشاء كائنات، تحدد خصائصها وطرقها.
- الكائنات: هي حالات من الفئات، تمثل كيانات أو مفاهيم حقيقية في العالم.
- الخصائص (الصفات): هي متغيرات داخل الفئة تخزن بيانات مرتبطة بكائن.
- الطرق: هي وظائف محددة داخل الفئة تقوم بإجراء عمليات على بيانات الكائن.
- المنشئون: هي طرق خاصة يتم استدعاؤها عند إنشاء كائن، غالبًا ما تستخدم لتهيئة خصائصه.
- الوراثة: هي القدرة على أن ترث فئة خصائص وطرق من فئة أخرى (فئة أصل).
- تعدد الأشكال: هي القدرة على معاملة كائنات من فئات مختلفة على أنها كائنات من فئة أصل مشتركة.
ملخص ما سبق
البرمجة الشيئية تركز على إنشاء كائنات Objects تحمل البيانات data والوظائف function ذات الصلة بها.
على سبيل المثال، إذا كان لديك تطبيق يتعامل مع السيارات، يمكنك إنشاء صنف “سيارة” يحمل السمات مثل العلامة التجارية واللون
والوظائف مثل تشغيل المحرك وتغيير السرعات.
هذه الأشياء تُعتبر كائنات في البرمجة الشيئية.
مثال اخر : لو فرضنا ان الكائن (انسان) فما هي خصائصة Attributes وما هي اساليبة Methods
خصائصة او وصفة : طولة – عمرة – نوعه – لون البشرة – الخ
اساليبة : يعمل – ياكل – ينام – يجري – وكل ما يستطيع ان يفعلة action
الفكرة الرئيسية هي تقسيم البرنامج إلى مجموعة من الكائنات التي تتفاعل مع بعضها البعض، مما يسهل فهم البرنامج وتطويره وصيانته
الكائنات والاصناف
- الصنف: قالب يحدد الخصائص (السمات) والوظائف (الدوال) للكائنات.
- الكائن: نسخة من الصنف؛ يحتوي على بياناته الفريدة.
لاحظ المثـــــــــــال التالي :
class Car {
// الخصائص
public $brand;
public $model;
// الوظائف
public function startEngine() {
return $this->brand . " " . $this->model . " تم تشغيل المحرك!";
}
}
// إنشاء كائن (نسخة من الصنف)
$myCar = new Car();
$myCar->brand = "تويوتا";
$myCar->model = "كورولا";
echo $myCar->startEngine(); // الناتج: تويوتا كورولا تم تشغيل المحرك!
التغليف Encapsulation
- يتمثل في تجميع البيانات مع الوظائف التي تعمل على تلك البيانات.
- تحكم الكلمات المفتاحية مثل
public
وprivate
وprotected
في رؤية الخصائص والوظائف.
لاحظ المثـــــــــــال التالي :
class BankAccount {
private $balance = 0;
public function deposit($amount) {
$this->balance += $amount;
}
public function getBalance() {
return $this->balance;
}
}
$account = new BankAccount();
$account->deposit(100);
echo $account->getBalance(); // الناتج: 100
التوريث Inheritance
- يسمح للصنف بالاستفادة من الخصائص والوظائف من صنف آخر.
- تُستخدم كلمة
extends
لإنشاء صنف فرعي (طفل) يرث من صنف أساسي (أب).
لاحظ المثـــــــــــال التالي :
class Animal {
public function makeSound() {
return "بعض الصوت";
}
}
class Dog extends Animal {
public function makeSound() {
return "ووف!";
}
}
$animal = new Animal();
echo $animal->makeSound(); // الناتج: بعض الصوت
$dog = new Dog();
echo $dog->makeSound(); // الناتج: ووف!
التعددية Polymorphism
- يمكن معالجة كائنات من صنفات مختلفة على أنها كائنات من صنف أب مشترك.
- يسمح بتجاوز الوظائف وتحميل الوظائف.
لاحظ المثـــــــــــال التالي :
interface Shape {
public function calculateArea();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function calculateArea() {
return pi() * $this->radius * $this->radius;
}
}
class Square implements Shape {
private $side;
public function __construct($side) {
$this->side = $side;
}
public function calculateArea() {
return $this->side * $this->side;
}
}
function printArea(Shape $shape) {
echo "المساحة: " . $shape->calculateArea() . "\n";
}
$circle = new Circle(5);
$square = new Square(4);
printArea($circle); // الناتج: المساحة: 78.539816339745
printArea($square); // الناتج: المساحة: 16
هذه المفاهيم الأساسية في البرمجة الشيئية في PHP، تساعد في تنظيم الكود، وتعزيز إعادة الاستخدام، وتحسين قابلية الصيانة في تطبيقات أكبر الحجم
روابط مساعدة لمعرفة المزيد
فيما يلي بعض الروابط المفيدة التي يمكنك استخدامها لتعلم المزيد عن OOP في PHP:
- الوثائق الرسمية لـ PHP: تحتوي الوثائق الرسمية لـ PHP على قسم كامل مخصص لـ OOP. يمكنك العثور على هذه الوثائق على موقع PHP الرسمي.
- دورة OOP في PHP: تقدم هذه الدورة التدريبية على الإنترنت مقدمة شاملة لـ OOP في PHP. يمكنك العثور على هذه الدورة التدريبية على Udemy.
- كتاب OOP في PHP: يوفر هذا الكتاب نظرة شاملة لـ OOP في PHP. يمكنك العثور على هذا الكتاب على موقع Amazon.
Sharing to