Вызов метода при установке объявленного публичного свойства

У меня проблема в том, что магический метод __set () по своей природе работает только для необъявленных свойств. Есть ли __set () как решение для объявленных свойств, где я могу вызвать метод, когда свойство установлено? Объявленные свойства значительно повысят удобство использования для классов, которые я разрабатываю, особенно для IDE.

1

Решение

Нет, вы не можете использовать магию для свойств и методов, объявленных или видимых в текущей области. Php вызывает их только в том случае, если не может найти объявление в классе. Вот что документация говорит об этом:

Методы перегрузки вызываются при взаимодействии со свойствами или методами, которые не были объявлены или не видны в текущей области.

Но вы можете помочь большинству IDE, в частности PhpStorm, я уверен, что Netbeans также поддерживает это, предоставив PHPDoc для класса со свойствами и методами:

/**
* @property string $myProperty
* @method string myMethod(int $param = 10)
*/
class MyClass
{
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]