Sublime Text 的 PHP 功能(语法检查、运行、补全)全部依赖系统 PATH 中的 php CLI,若 php -v 失败,则所有功能静默失效;需手动配置绝对路径至 SublimeLinter-php 和 PHP Companion 的设置中,并确保 Composer autoload 正常。

php -v 不成功,后续所有功能都白配
Sublime Text 本身不带 PHP 解释器,所有语法检查、运行、补全都依赖系统 PATH 中的 php CLI 可执行文件。如果终端里执行 php -v 报错,Build System、SublimeLinter-php、PHP Companion 全部静默失效——不是插件坏了,是根本没机会启动。
常见现象:'php' is not recognized as an internal or external command(Windows)或 command not found: php(macOS/Linux)
- macOS Homebrew 用户:运行
which php,大概率是/opt/homebrew/bin/php或/usr/local/bin/php;若无输出,先brew install php - Windows XAMPP 用户:真实路径通常是
C: mppphpphp.exe,但 Build System 中写["C:\xampp\php\php.exe", "-f", "$file"]即可,别写成php.exe加在 PATH 里却没生效 - Linux(apt):装
php-cli,命令是sudo apt install php-cli,路径一般为/usr/bin/php - GUI 启动的 Sublime(尤其 macOS M1/M2、Windows WSL)常不继承 shell 的完整 PATH —— 别信“终端能跑,Sublime 就能跑”,必须验证或改用绝对路径
SublimeLinter-php 语法检查不报错?先看它有没有调到 php
SublimeLinter-php 不是独立工具,它只是封装了 php -l 命令做语法检查。它默认走系统 PATH 调 php,PATH 不对就完全不触发,也不会报错提示。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 安装插件后,打开
Preferences → Package Settings → SublimeLinter → Settings - 在用户设置右侧加这一行:
"php_executable": "/opt/homebrew/bin/php"(macOS)或"php_executable": "C:\xampp\php\php.exe"(Windows),路径必须和你终端里which php或where php输出一致 -
-l模式只检查语法,不执行代码;错误定位靠file_regex提取行号,推荐用:"file_regex": "php.*?on line (\d+)" - 别把
php -l和php -f混用:前者用于保存时自动检查,后者才是运行脚本
PHP Companion 补全跳转失效,八成是 php.executable_path 没设对
PHP Companion 依赖本地 PHP 二进制来解析 AST、读取 vendor/autoload.php、加载类定义。它不连远程服务,也不猜路径——php.executable_path 错了,跳转 Ctrl+Click 就永远显示 “No definition found”。
配置位置:
- 菜单栏
Preferences → Package Settings → PHP Companion → Settings - 右侧用户设置中必须显式填入:
"php_executable_path": "/opt/homebrew/bin/php"(注意键名是php_executable_path,不是php_executable) - 如果项目用了 Composer,确保
vendor/autoload.php存在且可被 CLI 正常 require(比如php -r "require 'vendor/autoload.php';"不报错) - 补全范围受
psr-4映射影响;如果类在src/下但composer.json没声明 autoload,Companion 就看不到
非 .php 文件不高亮?语法映射得走 Syntax Specific
Sublime 默认只给 .php 后缀绑定 PHP 语法,.phtml、.module、.inc 全是 Plain Text——连 <?php 都不着色,更别说补全和检查。
正确做法不是改全局设置,而是走语法专属配置:
- 打开一个
.phtml文件 →View → Syntax → Open all with current extension as… → PHP - 或者更彻底:菜单
Preferences → Settings – Syntax Specific,右侧加:
{
"extensions": ["phtml", "module", "inc", "install"],
"syntax": "Packages/PHP/PHP.sublime-syntax"
}
注意:Settings – User 是全局配置,这里无效;syntax 值必须写全路径,不能简写为 PHP。
最易被忽略的点:Xdebug 调试和 CLI 语法检查用的是两套 php.ini,Web 请求走 Apache/Nginx 加载的配置,而 Sublime 调用的 php -l 或 php -f 走 CLI 模式下的 php.ini(通常在 $(php --ini | grep "Loaded Configuration File"))。两者扩展、路径、超时设置不同,问题常交叉出现但根源分离。



















