إكمال الكود لمتغيرات الأعضاء الخاصة/المحمية عند استخدام Magic __get ()
-
26-09-2019 - |
سؤال
كيف يمكنني إعداد إكمال الكود للعمل على Zend Studio (أو أي IDE المستند إلى Eclipse) عند العمل مع فئة تحتوي على متغيرات أعضاء خاصة أو محمية دون اللجوء إلى مجموعة من Getter أو تعيين Vars العضو على أنها عامة.
علي سبيل المثال:
class Dog {
protected $bark = 'woof!';
public function __get($key) {
if (isset($this->$key)) {
return $this->$key;
}
}
}
$Dog = new Dog();
echo $Dog->bark; // <-- I want the IDE to "know" that bark is a property of Dog.
المحلول
يمكن تحقيق إكمال الكود للطرق السحرية باستخدام @منشأه و @طريقة التعليق التوضيحي في docblock من الفصل (وليس في مستندات الطريقة).
/**
* @property string bark
*/
class Dog {
/* ... */
}
$Dog = new Dog();
echo $Dog-> // will autocomplete now
لاحظ أنه لا يوجد علاقة بين الكود الفعلي والشرح. سيظهر Zend Studio ما تحدده @property
, ، بغض النظر عن هذه الخاصية الموجودة. كما أنه لن يتحقق مما إذا كان هناك بالفعل طريقة سحرية متاحة.
لا تنتمي إلى StackOverflow