我使用class_alias函数为静态类创建别名:
<?php
/**
* Class A
*/
class A {
static function doSomething() {
print 42;
}
}
// create alias, now calling B:: is the same like A::
class_alias('A', 'B');
// here autocomplete is not working
B::doSomething();
一切正常,除了当我键入B::
并按Ctrl+Space时自动完成不起作用。
PHPDoc或PhpStorm是否有一些帮助自动完成的魔力来告诉别名类的类型以启用自动完成,比如:
<?php
// /** @alias <full_name_of_original_class> <alias_name> */
/** @alias A B */
B::doSomething();
-
当前的PHPDoc(和PSR-5)没有
@alias
或类似标签 -
与PhpStorm 相同
-
有一天PhpStorm可能会支持
class_alias()
。https://youtrack.jetbrains.com/issue/WI-11936——观看这张票(星号/投票/评论),了解任何进展。 -
我能为您提供的唯一选项是在一个单独的文件中创建类似
class B extends A {}
的东西,该文件将仅由IDE使用。顺便说一句——这就是Laravel的facade的支持方式(告诉IDE这些类可以做什么/它们有什么方法等)。