في هذا السياق، يتم استعراض مثال عملي لتطبيق مفاهيم البرمجة الشيءية باستخدام لغة PHP. يتم التركيز في الشفرة على فهم كيفية التفاعل بين الكائنات والفئات المختلفة لبناء نظام بسيط يعبر عن هيكل تنظيمي لشركة.
تبدأ الشفرة بتعريف فئتين رئيسيتين: Person و Business. تحتوي فئة Person على متغير محمي ($name) ودالتين، الأولى تقوم بتعيين قيمة المتغير $name عند إنشاء الكائن، والثانية ترجع قيمة $name.
من جهة أخرى، تحتوي فئة Business على فئة فرعية هي Staff. يتم تمرير كائن من Staff كمعامل إلى الدالة البنائية لفئة Business. يتيح لنا ذلك إضافة أعضاء (أشخاص) إلى الفريق التابع للشركة باستخدام دالة hire.
الشفرة تظهر أيضاً استخدام مصفوفة لإنشاء مجموعة من الأشخاص (الموظفين)، حيث يتم إنشاء كائن Person لكل فرد وإضافته إلى مصفوفة. يتم تمرير هذه المصفوفة كمعامل لإنشاء كائن Staff، ومن ثم يتم إنشاء كائن Business باستخدام الكائن Staff.
أخيراً، يتم استخدام var_dump و print_r لاستعراض الموظفين في الشركة. يمكن أن تكون هذه الطرق مفيدة لفهم كيف يتم تنظيم البيانات والتفاعل بين الكائنات في تطبيق البرمجة الشيءية. ولكن، يظهر أنك ترغب في تغيير هذه الطرق إلى echo لتحسين الاستخدامية في المستقبل، ورغم أن هذا ممكن، إلا أنه يتطلب تعديلات على الشفرة بما يتناسب مع استخدام echo بدلاً من var_dump و print_r.
المزيد من المعلومات
في هذا السياق، يُظهر الكود المُقدم كيف يمكن استخدام مفاهيم البرمجة الشيءية في PHP لبناء نظام بسيط يُظهر تفاعل بين كائنات مختلفة. دعنا نقم بتوسيع هذا الفهم بشكل أعمق.
تبدأ الشفرة بتعريف فئة Person
التي تُمثل شخصًا. يتم تحديد متغير محمي $name
لتخزين اسم الشخص، وتوفير دالة بنائية __construct
تستخدم لتهيئة قيمة المتغير عند إنشاء كائن جديد من الفئة. هنا يُظهر الاستخدام الجيد لمبدأ التجنيد (encapsulation) من خلال تحديد الخصائص بشكل محمي والوصول إليها من خلال دوال.
ثم، يتم تعريف فئة Staff
التي تُمثل مجموعة من الأشخاص. تحتوي هذه الفئة على مصفوفة محمية $members
لتخزين أفراد الفريق. يتم استخدام دالة بنائية لتهيئة القائمة ودالة add
لإضافة شخص جديد إلى القائمة.
تأتي فئة Business
كفئة رئيسية وتتكون من متغير محمي $staff
الذي يمثل كائن من الفئة Staff
. الدالة البنائية تأخذ كائن Staff
كمعامل، وهذا يُظهر مبدأ حقن التبعية (dependency injection).
الشفرة تحتوي أيضًا على دالة hire
التي تستخدم لإضافة شخص جديد إلى الفريق باستخدام دالة add
من فئة Staff
. وأخيرًا، توفر دالة getStaffMembers
لاسترجاع أعضاء الفريق.
يُظهر الجزء الأخير من الشفرة كيفية إنشاء كائنات وتمثيل الموظفين. تُستخدم مصفوفة $bros
لإنشاء مصفوفة من الأشخاص، ويتم إنشاء كائن Person
لكل فرد. ثم يُستخدم كائن Staff
لتمثيل الفريق، وأخيرًا، يُنشئ كائن Business
باستخدام الكائن Staff
.
أخيرًا، يُستخدم var_dump
و print_r
لاستعراض معلومات الفريق. من الممكن تحسين هذا باستخدام echo
وتنسيق النص بشكل أفضل لجعل الإخراج أكثر قراءة وفهمًا.