Sublime Text 本身不带 PHP 解释器,所有功能均依赖本地 php CLI;若终端 php -v 失败,则语法检查、补全、跳转等全部失效;需手动配置绝对路径至 SublimeLinter-php、PHP Companion 及 Build System,并通过 Settings – Syntax Specific 绑定 .inc、.phtml 等扩展名。

Sublime Text 本身不带 PHP 解释器,所有语法检查、补全、跳转功能都依赖你本地安装的 php CLI 可执行文件。如果 php -v 在终端失败,后续所有插件配置都是空转——不是插件坏了,是根本没机会运行。
Sublime 不识别 .php 文件或自定义后缀(如 .inc、.phtml)
右下角显示 “Plain Text” 或 “HTML”,说明 Sublime 没把当前文件当 PHP 处理。它只默认绑定 .php 后缀,其他扩展名一律 fallback 成纯文本。
- 临时解决:打开文件 → 点右下角语法名(如 “Plain Text”)→ 选 PHP
- 永久解决:菜单 Preferences → Settings – Syntax Specific,在右侧加:
{"extensions": ["inc", "phtml", "module", "install"]},保存即生效 - ⚠️ 别误填到
Settings – User,语法映射只在Settings – Syntax Specific下起作用
SublimeLinter-php 不报错,控制台却提示 php: command not found
这是路径失效的明确信号。GUI 启动的 Sublime(尤其 macOS M1/M2、Windows WSL、MAMP/XAMPP 用户)通常不继承 shell 的完整 PATH,which php 在终端有效 ≠ Sublime 能调用。
- 先在终端跑
which php(macOS/Linux)或where php(Windows),拿到真实路径,例如:/opt/homebrew/bin/php或C:/xampp/php/php.exe - 进 Preferences → Package Settings → SublimeLinter → Settings,用户设置中加:
{"linters": {"php": {"executable": "/opt/homebrew/bin/php", "lint_mode": "save"}}} -
lint_mode必须设为"save":PHP 的php -l不加载运行时环境,"background"模式会频繁误报undefined constant,还卡输入
PHP Companion 或 Anaconda 补全/跳转失效
这类插件不是靠猜,而是调用本地 php 二进制解析 AST、读取 vendor/autoload.php、加载类定义。路径错一点,Ctrl+Click 就永远显示 “No definition found”。
立即学习“PHP免费学习笔记(深入)”;
- PHP Companion:检查其设置里
php.executable_path是否指向你which php输出的路径 - Anaconda:进 Preferences → Package Settings → Anaconda → Settings – User,确保启用了 PHP:
{"php": {"enable": true, "autocomplete": true}} - 项目有
composer.json?补全范围取决于vendor/autoload.php是否能被正确加载——插件不会自动帮你composer install
Build System 运行 PHP 脚本时提示 php is not recognized
构建系统默认走系统 PATH,但 Windows 图形启动、macOS GUI、WSL 环境下常不可靠。别信“终端能跑,Sublime 就能跑”,必须验证或改用绝对路径。
- 新建构建系统:Tools → Build System → New Build System
- 填入(以 macOS Homebrew 为例):
{"cmd": ["/opt/homebrew/bin/php", "-f", "$file"], "selector": "source.php", "file_regex": "php.*?on line (\d+)", "working_dir": "$file_path"} - Windows XAMPP 用户注意:
cmd中写"C:/xampp/php/php.exe",别写成php.exe单独加进 PATH 却没生效 -
-f是执行脚本,-l是语法检查;别混用,也别漏掉"selector": "source.php",否则Ctrl+B不触发
最易忽略的一点:PHP CLI 和 Web 服务器用的 php.ini 往往不是同一个。语法检查通过不代表网页不空白——若遇到空白页,优先查 display_errors 和错误日志,而不是重配 Sublime。



















