لقد قمت بتطبيق بلدي Doctrine\Common\EventSubscriber
التي تشترك في أحداث "onFlush" وتقارن EntityChangeSet بقائمة مشفرة من خصائص الفئة (مثل User->Name
و Event->Date
) ويسجل التغيير إذا لزم الأمر.
نظرًا لأن أسماء خصائص الفئات الأخرى قد تتغير ، فإنني أفضل بدلاً من ذلك إضافة تعليق توضيحي لهذه الخصائص باستخدام مخصص @Loggable
.
وأضاف لقد بنيت فئة التعليق "Loggable" use MyNamespace\Annotations\Loggable;
إلى User
و Event
الطبقات ولها طريقة في EventSubscriber بلدي الذي يخلق Doctrine\Common\Annotations\AnnotationReader
ويستخدم لها getPropertyAnnotation($property, 'Loggable')
للتحقق من وجود قيمة غير فارغة.
الآن على المشكلة
كما يمكن للمرء أن يتوقع (أو لا) ، يلقي هذا القارئ بالذات
[Semantical Error] The annotation "@Id" in property MyNamespace\Entities\User::$id was never imported.
وليس على علم بأي تعليقات توضيحية أخرى لـ ORM يستخدمها القارئ في EntityManager
يعرف عن.
هل علي أن أضيف فعلا use Doctrine\ORM\Mapping as ORM;
لكل فئة من الكيانات ويبدأ كل تعليق ORM مع ORM\
فقط لإرضاء هذا القارئ الذي تم إنشاؤه حديثًا أو هل هناك طريقة لإعادة استخدام القارئ في EntityManager
(أ Doctrine\Common\Annotations\SimpleAnnotationReader
بشكل افتراضي ، إذا فهمت بشكل صحيح؟)
لقد أجريت بحثي وقرأت معظم الإجابات المتعلقة بالعقيدة والتعليقات التوضيحية ، ولكن يبدو أنني افتقدت بعض الفهم المفاهيمي. ربما شخص ما يمكن أن يشير لي في الاتجاه الصحيح؟