--- title: "PHP" description: "Intelephense、PHP 解释器与语言级别、Composer、PHPUnit 与 Pest、PHPStan、Xdebug 调试以及 Laravel 支持。" --- OpenIDEA 开箱即可高亮 PHP 文件(`.php`、`.phtml`、`.phpt` 以及老式的 `.php3`–`.php5`,还有以 `` 配置(Composer 事件钩子除外);名为 `test` 的脚本是测试配置。 - 存在 `phpunit.xml`、`phpunit.xml.dist`、`phpunit.dist.xml`,依赖了 `phpunit/phpunit` 或 `pestphp/pest`,或 `vendor/bin` 中有对应运行器时,生成 **PHPUnit** 配置(存在 `vendor/bin/pest` 时为 **Pest**)。 - Laravel 项目中的 `artisan serve`。 PHPUnit 运行配置类型包含 **目标**、**配置文件**、**测试过滤器** 和 **PHPUnit 选项** 等字段。 **运行上下文配置**(`⌃⇧R` / `Ctrl+Shift+F10`)对 `*Test.php` 文件走 PHPUnit 配置,对其他 PHP 文件用所选解释器直接运行。在 `*Test.php` 文件以及 `test/`、`tests/` 下的文件中,边栏图标可以单独运行某个测试类、测试方法或 Pest 测试。结果显示在测试树中,支持 **重新运行失败的测试**。详见[测试](/zh/guide/testing)。 ## 调试 调试使用 PHP Debug(vscode-php-debug)配合 Xdebug。所选 PHP 必须已加载 Xdebug 扩展,PHP 设置页会显示是否已加载。 - **调试** 适用于 PHP 文件、PHPUnit/Pest 和 `artisan serve`。IDE 通过 `-d` 选项为本次会话开启 Xdebug 并使用空闲端口,不需要改 `php.ini`,也不会与另一个监听 9003 端口的 IDE 冲突。 - **PHP 远程调试 (Xdebug)** 是一种运行配置类型,用于监听外部的 Xdebug 连接(默认端口 9003),适合调试 php-fpm、容器等其他地方处理的请求。其 **远程端启动命令** 字段给出对应的 `php -dxdebug.mode=debug …` 命令;Web 请求可使用 `XDEBUG_SESSION` cookie 或查询参数。用 **本地根目录** 和 **远程根目录** 做路径映射。 详见[调试](/zh/guide/debugging)。 ## 框架支持 - **Laravel**:Laravel LSP 支持 `config()`、`route()`、`view()` 中的字符串,并提供 `artisan serve` 运行配置。 - **WordPress** 等平台:在 **附加存根** 中加入对应 stub,在 **包含路径** 中加入平台代码目录。 ## 已知限制 - 不支持 Blade 或 Twig 模板,只有 `.php` 文件有 PHP 代码智能。 - IDE 不会安装 phpactor。 - PHPUnit 不支持使用覆盖率运行。 - 调试需要 PHP 已安装 Xdebug 扩展,IDE 不负责安装。