البرمجة كائنية التوجه (OOP) في PHP
البرمجة كائنية التوجه (Object-Oriented Programming) هي أسلوب برمجة يعتمد على تجميع البيانات والوظائف التي تعمل عليها في بنية واحدة تسمى الكائن (Object)، مما يجعل البرمجيات أكثر تنظيماً وقابلة للصيانة والتوسع.
أساسيات OOP في PHP
الصفوف (Classes) هي القوالب التي تُستخدم لإنشاء الكائنات. تحتوي الصفوف على خصائص (Properties) تمثل البيانات، ودوال (Methods) تمثل السلوك.
class Car { public $brand; public $color; public function drive() { return "The car is driving"; } }
الكائنات (Objects) هي نسخ من الصفوف تحتوي على بياناتها وسلوكها الخاص. يتم إنشاؤها باستخدام الكلمة المفتاحية new
.
$myCar = new Car(); $myCar->brand = "Toyota"; $myCar->color = "Red"; echo $myCar->drive(); // Outputs: The car is driving
الخصائص (Properties) والدوال (Methods)
الخصائص هي المتغيرات التي تنتمي إلى الصف.
class Person { public $name; public $age; }
الدوال هي الوظائف التي يمكن للكائن تنفيذها.
class Person { public $name; public function greet() { return "Hello, my name is " . $this->name; } }
التجريد (Abstraction)
التجريد هو التركيز على ما يجب أن يفعله الكائن دون الاهتمام بكيفية القيام بذلك. يتم تحقيق ذلك باستخدام الصفوف المجردة (Abstract Classes).
abstract class Animal { abstract public function makeSound(); } class Dog extends Animal { public function makeSound() { return "Bark"; } }
الوراثة (Inheritance)
الوراثة تسمح بإعادة استخدام الكود من خلال إنشاء صف جديد يعتمد على صف موجود.
class Vehicle { public $type; public function start() { return "Starting the vehicle"; } } class Car extends Vehicle { public $brand; public function start() { return "Starting the car"; } }
التعددية الشكلية (Polymorphism)
التعددية الشكلية تعني القدرة على استدعاء نفس الدالة من كائنات مختلفة مع تنفيذ مختلف.
class Shape { public function draw() { return "Drawing a shape"; } } class Circle extends Shape { public function draw() { return "Drawing a circle"; } } class Square extends Shape { public function draw() { return "Drawing a square"; } }
الكلمات المفتاحية المهمة
this
تُستخدم للإشارة إلى الكائن الحالي داخل الصف.private
تمنع الوصول إلى الخاصية أو الدالة إلا داخل الصف.protected
تسمح بالوصول داخل الصف أو الصفوف الوريثة.public
تجعل الخاصية أو الدالة متاحة للجميع.
class Example { private $privateProperty = "Private"; protected $protectedProperty = "Protected"; public $publicProperty = "Public"; }
فوائد OOP في PHP
تساعد البرمجة كائنية التوجه في تحسين قابلية إعادة الاستخدام، تسهيل الصيانة، وتنظيم الكود بشكل يجعل المشاريع البرمجية أكثر استقراراً وسهولة في التطوير.