Avatar ·

كيفية تجاوز طريقة trait في PHP واستدعائها من الطريقة المُعاد تعريفها؟

مرحبًا بالجميع! أنا أتعلم PHP وواجهت مشكلة مع traits. الموقف كالتالي: لدي trait `Logger` يحتوي على طريقة `log($message)`. هذه الطريقة ببساطة تطبع الرسالة في وحدة التحكم. أريد استخدام هذا trait في كلاس `UserService`، لكني بحاجة لتغيير سلوك طريقة `log`: إضافة بادئة باسم الكلاس إلى الرسالة. ومع ذلك، بعد إعادة تعريف الطريقة، لا أستطيع استدعاء النسخة الأصلية من trait. إليك مثال الكود: ```php trait Logger { public function log($message) { echo "LOG: " . $message . "\n"; } } class UserService { use Logger; public function log($message) { // أريد استدعاء الطريقة الأصلية من trait، لكن لا أعرف كيف // parent::log($message); // خطأ! echo "[" . __CLASS__ . "] " . $message . "\n"; } } $service = new UserService(); $service->log("تم إنشاء المستخدم"); ``` لقد جربت استخدام `parent::log()`، لكنه لا يعمل — يظهر خطأ. كما جربت