gpt4 book ai didi

php - Netbeans 和 PHP; class_alias 和代码完成

转载 作者:可可西里 更新时间:2023-11-01 00:16:43 25 4
gpt4 key购买 nike

快点;用于 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,并没有真正使用配置,所以我希望有一些我可以修改的项目特定配置。

在此先感谢大家。


有趣的是,我 可以 不能见下文而是使用命名空间的使用(虽然我项目在其他方面是无命名空间的)以实现 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 不支持动态命名; 使用\{$class} 作为 {$alias}; 是非法的。
  • 最重要的use 不执行文件包含,因此呈现它的用法……好吧,没用。双关语。

最佳答案

我设法为此创建了一些解决方法

在项目的 Bootstrap 中,您可以创建别名

class_alias('Some\Namespaced\ClassName', 'aliasName');
class_alias('Some\Namespaced\ClassName2', 'anotherAlias');

为了让 Netbeans 获取它,您可以在项目的某处创建一个虚拟文件。例如。别名.php

class aliasName extends \Some\Namespaced\ClassName{}
class anotherAlias extends \Some\Namespaced\ClassName2{}

Extend 并不直接等同于 class_alias,但出于代码提示的目的,它工作正常。

重要!实际上不要在项目的任何地方包含此文件,仅此文件的存在将允许 Netbeans 生成代码提示。

关于php - Netbeans 和 PHP; class_alias 和代码完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6586207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com