快速一个;用于PHP开发的Netbeans 7.0:
当class_alias
被用于别名一个类,从而触发别名的代码完成时,有没有任何方法可以通知NetBeans?
class Foo{
public static $hello = 'world';
}
class_alias('Foo', 'Bar');
Bar::$h // triggers code completion for $hello
^
我仍在努力熟练使用NetBeans,并且还没有真正玩过太多配置,所以我希望有一些特定于项目的配置可以修改。
提前感谢各位。
有趣的是,我可以不能请参阅下面的,而是使用名称空间的use
(尽管我的项目在其他方面没有名称空间(来实现NetBeans将理解的:
class Foo{
public static $hello = 'world';
}
use Foo as Bar;
Bar::$h // DOES trigger code completion for $hello
^
我不知道这是否是一个可行的解决方案。我的Loader
类还包含alias => classname
的映射,当自动加载给定的类时,如果需要,load方法会搜索映射和别名
这不会像预期的那样起作用,因为use
完全不适合任何类型的动态混叠:
- 不能在全局以外的任何作用域中使用,函数或方法中的
use
会发出解析错误 use
不支持动态命名;use {$class} as {$alias};
是非法的- 最重要的是,
use
不进行文件包含,从而使其使用。。。嗯,没用。朋克风格
我设法为这个创建了一个变通方法
在项目的引导程序中,您可以创建别名
class_alias('SomeNamespacedClassName', 'aliasName');
class_alias('SomeNamespacedClassName2', 'anotherAlias');
为了让Netbeans接受它,你可以在项目中的某个地方创建一个伪文件。例如aliases.php
class aliasName extends SomeNamespacedClassName{}
class anotherAlias extends SomeNamespacedClassName2{}
Extend并不直接等同于class_alias,但出于代码提示的目的,它可以很好地工作。
重要不要在项目中的任何地方包含此文件,只要有此文件,Netbeans就可以生成代码提示。
不,对不起,我认为没有。
我不得不说class_alias
对我来说是一个新的!