问题标签 [intelephense]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1650 浏览

php - 如何声明在 PhpDoc 中定义了一个常量(用于 intelephense)?

TL;博士

如何使用 PhpDoc/DocBlocks 记录在外部代码中定义的常量,以便它不会在静态代码分析中显示为未定义的变量?

细节:

我正在尝试编写一个小型 WordPress 插件。我有一些如下的 PHP 代码。

我正在使用 VSCode 插件vscode-intelephense(它提供 PHP 语言服务)。我安装了所有必要的依赖项,包括在 VSCode 设置中将“wordpress”列为存根。总的来说,intelephense 运行良好,并且在显示有关我的代码以及 WordPress 库代码的信息方面做得很好。

但是 intelephense 显示错误:“未定义的常量 '...\ABSPATH' (1011)”(其中的点是我为简洁起见省略的命名空间)。

所以看起来 intelephense 没有接受第一行暗示的条件——即如果ABSPATH没有定义,执行将不会到达引用它的后面的代码。(这很好,程序流分析可能要求太多)。无论如何,我认为我应该能够添加某种 PhpDoc(或其他注释注释)以向代码分析器表明该变量定义。像这样的东西:

或这个:

但这些都不会导致错误消失。(我也尝试过@const似乎不是真正的标签。它也不起作用。)

代码中是否有某种方式可以表明 ABSPATH 是在外部代码中定义的,还是在外部范围内定义的?在函数顶部添加一行 likeglobal ABSPATH;似乎也不正确,因为ABSPATH它不是变量。这是一个define-created 常量。

谢谢!

0 投票
4 回答
12349 浏览

wordpress - VS Code 突出显示了我所有的 wordpress 函数名称

我正在使用最新版本的 PHP Intelephense(版本 1.3.7),我的 VS 代码是最新的 之前没有问题,但几天前,它一直突出显示我所有的 wordpress 函数名称 我试图降级我的 PHP Intelephene,但情况仍然存在。任何帮助将不胜感激

在此处输入图像描述

0 投票
0 回答
184 浏览

php - 告诉 intelephense 该函数是有效的

考虑以下类结构:

我能否以某种方式告诉我的智能感知(使用文档块或任何东西),在那种特定情况下,definedFunction确实定义了?上面的代码有效,尽管 intelephense 抱怨它,我可以用 docblock 或其他东西禁用该抱怨吗?

另一方面,有没有其他方法可以重构我的代码以让智能感知了解这种方法?基本上,我在这个结构上做错了吗?

我想要实现的是,以下:class A是一个模板类,它由一堆其他类扩展。其中一些其他类应该能够使用一些常用方法,但不是全部。因为我无法在 PHP 中扩展多个类,所以我尝试使用traits. 如果我碰巧遇到这种类之一,我会interface用它实现一个(以某种方式对它进行分组以供以后访问),并告诉它使用 defined trait,以获取所有添加的功能。我在上面的例子中调用test的函数,是所有扩展的类都class A必须能够访问的函数,但是当一个类时implements MyInterface,该函数应该获得一些附加的功能。这就是为什么我没有把它放入trait我正在定义的内容中。

0 投票
0 回答
170 浏览

cakephp - 预期类型“Cake\Datasource\EntityInterface”。找到“应用\模型\表\实体”

实际上,我不确定这是否是我的代码或 intelephense 的问题。

在我的UsersTable我有一个方法,给定 a user_id,获取用户的数据(通过调用另一个方法)并重新找到。这是代码:

现在,一切似乎都正常工作,除了我的 IDE 强调了$userin$this->save($user)和 intelephense 指向这个错误:

Expected type 'Cake\Datasource\EntityInterface'. Found 'App\Model\Table\entity'.

这是为什么?难道我做错了什么?

0 投票
0 回答
404 浏览

php - Laravel Blade 模板中的代码补全 - vscode

与 phpstorm 相比,我真的很喜欢 vscode,但是如何让 PHP Intelephense 代码完成以在 laravel 刀片模板中工作?

0 投票
0 回答
311 浏览

visual-studio-code - 在 vs 代码中格式化我的 php 脚本时如何使用 `intelephense` 删除空白行?

我的系统是centos 7.6,intelephense1.3.11,vs code 1.44.1

我只想通过删除空行来格式化我的脚本,右缩进。
至于上面的脚本,我ctrl+A,然后ctrl +shift +I,空白行仍然存在。
在 vs 代码中格式化我的 php 脚本时如何使用intelephense删除空白行?

0 投票
1 回答
6450 浏览

php - 转到 VSCode 中 PHP 扩展的定义

当我使用 Composer 时,“转到定义”效果很好。但它不适用于 MySQLi 等 PHP 核心扩展。Ubuntu 是我的操作系统,我搜索了这些库的 PHP 文件,只找到了它们的 .so 文件,也许这就是我不能“转到定义”的原因。

以上是我的 vscode PHP 定义。不知道“同步:忽略”是否有问题,我没有在 settings.json 中设置 PHP 二进制文件的路径,但我尝试添加它,但没有任何区别。

如何解决这个问题?

我的 vscode PHP 定义

0 投票
1 回答
3679 浏览

php - VSCode 的 intelephense 中未定义的类型“Imagick”

我遇到了一个问题,我通过 Pecl 安装了 Imagick,而 Intelephense 不知道如何处理该扩展,并且即使该扩展已正确安装在 php.ini 文件中并且工作正常,也无法显示任何代码完成。
一些屏幕截图使您更清楚:

  1. 使用 Imagick 的代码
  2. Bash 输出显示 imagick 扩展安装在 php.ini 中:
  1. 显示扩展所在位置的 Bash 输出:
0 投票
1 回答
221 浏览

php - VS Code PHP Intelephense 扩展是否有配置标志来关闭参数提示?

在使用带有 Intelephense 扩展的 VS Code 时,我注意到一些额外的参数提示。我看到了其中的价值,但我也发现它在开发过程中给我增加了太多的视觉噪音。有没有办法通过设置来切换这个选项?

参数提示示例

0 投票
1 回答
1991 浏览

visual-studio-code - VS Code Intelephense 清除缓存并重新加载

我将 Visual Studio Code 与 Intelephense 一起使用,这对我的所有项目都产生了奇迹,除了一个项目,在我打开包含该类的文件之前,每个类都显示为未定义。因此我怀疑 Intelephense 没有扫描这个项目。

网络上的一些建议提到执行“清除缓存并重新加载”,但是我在任何地方都找不到这个选项。谁能告诉我在哪里可以找到这个,好吗?

我正在使用 Windows 10、VS Code 1.46.1 和 Intelephense 1.4.1