有沒有辦法將magic property標記爲已棄用?考慮下面,簡化代碼:如何在PHPDoc中棄用PHP的魔術屬性?
/**
* Example class
*
* @property string $foo A foo variable.
*/
class Example {
/**
* Magic getter
*/
public function __get($var) {
if('foo' === $var) {
// do & return something
}
}
}
現在,如何指示其他開發人員,他們不應該用Example::$foo
了嗎?這使我想到的唯一的工作解決方法是:
/**
* Example class
*/
class Example {
/**
* A foo variable.
*
* @var string
* @deprecated
*/
public $foo;
/**
* Magic getter
*/
public function __get($var) {
if('foo' === $var) {
// do & return something
}
}
}
但這兩者打破我的代碼(吸氣不叫),並不會覺得很優雅。
拋出一個警告或異常,並記錄它? –
[看起來合法](https://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.deprecated.pkg.html) - 不能編譯? –
@self我不想破壞舊的依賴關係 - 只是指出它不應該用在新的代碼中。 – pamelus