البرمجة الشيئية ومفاهيم البوليمورفيزم والتوريث في PHP (2023)

مقدمة

في عالم تطوير البرمجيات، تظل مفاهيم البرمجة الشيئية أساسية وحيوية لتحقيق تصميم برمجي نظيف وقابل للصيانة. في هذا المقال، سنتناول بشكل خاص مفاهيمين هامين: البوليمورفيزم والتوريث.

البوليمورفيزم في PHP

البوليمورفيزم هو مفهوم يعنى بأن نفس الوظيفة يمكن أن تتصرف بطرق مختلفة حسب السياق. في PHP، يمكن تحقيق البوليمورفيزم بشكل بارع باستخدام الكلاسات الأبستراكتية والانتقال بينها.

مثال على البوليمورفيزم باستخدام كلاسات PHP

لنفترض أن لدينا كلاسًا أبستراكتيًا يسمى Base يحتوي على خاصية $name ووظيفة login().

abstract class Base {
    protected $name = '';

    public function login() {
        return "اسمي هو {$this->name}: من الفئة {$this->className()} وأنا أبدأ الدخول... <br>";
    }

    private function className() {
        return get_called_class();
    }
}

ثم يمكننا إنشاء كلاسات تورث من Base مثل Admin, User, و Guest، وتنفيذ وظيفة login بطرق مختلفة.

class Admin extends Base {
    public function __construct($name) {
        $this->name = $name;
    }
}

class User extends Base {
    public function __construct($name) {
        $this->name = $name;
    }
}

class Guest extends Base {
    protected $name = 'Invitado';
}

ويمكننا استخدام هذه الكلاسات كما يلي:

$guest = new Guest();
echo $guest->login();

$user = new User('Italo Morales');
echo $user->login();

$admin = new Admin('Lynda Morales');
echo $admin->login();

وهكذا، نحصل على نتائج مختلفة لكل كلاس باستخدام نفس الوظيفة.

التوريث والهرمية في PHP

التوريث هو مفهوم آخر يسمح لنا بإنشاء هيكل هرمي من الكلاسات، حيث يمكن لكلاس أن يرث الخصائص والوظائف من كلاس آخر. في PHP، يمكننا تحقيق التوريث ببساطة باستخدام كلمة المفتاح extends.

مثال على التوريث في PHP

لنفترض أن لدينا كلاس User يحتوي على الخصائص الأساسية للمستخدم، ثم نقوم بإنشاء كلاس Admin الذي يرث من User دون الحاجة إلى إعادة كتابة الوظائف.

class User {
    public $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}

class Admin extends User {
    // لا حاجة لتعريف وظائف هنا
}

ويمكننا استخدام هذه الكلاسات كما يلي:

$admin = new Admin('Italo Morales');
echo $admin->getName(); // سيظهر: Italo Morales

هنا، يرث الكلاس Admin الخصائص والوظائف من الكلاس User.

الاستنتاج

في هذا المقال، استعرضنا مفاهيم البوليمورفيزم والتوريث في PHP، وكيف يمكن استخدامها لتحسين تصميم البرمجيات وجعلها أكثر قابلية للصيانة. إن تفهم هذه المفاهيم وتطبيقها بشكل صحيح يسهم في بناء رمز برمجي فعّال ومنظم.

Top Articles
Latest Posts
Article information

Author: Twana Towne Ret

Last Updated: 22/10/2023

Views: 6164

Rating: 4.3 / 5 (44 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Twana Towne Ret

Birthday: 1994-03-19

Address: Apt. 990 97439 Corwin Motorway, Port Eliseoburgh, NM 99144-2618

Phone: +5958753152963

Job: National Specialist

Hobby: Kayaking, Photography, Skydiving, Embroidery, Leather crafting, Orienteering, Cooking

Introduction: My name is Twana Towne Ret, I am a famous, talented, joyous, perfect, powerful, inquisitive, lovely person who loves writing and wants to share my knowledge and understanding with you.