PHP

PHP 支持通过PHP 扩展提供。

选择语言服务器

PHP 扩展提供 phpactorintelephense 两种语言服务器支持。

phpactor 默认启用。

Phpactor

Zed PHP 扩展可以自动安装 phpactor,但需要已安装 php 并在您的路径中可用。

# brew install php            # macOS
# sudo apt-get install php    # Debian/Ubuntu
# yum install php             # CentOS/RHEL
# pacman -S php               # Arch Linux
which php

Intelephense

Intelephense 是一款为 PHP 设计的专有语言服务器,采用免费增值模式。某些功能需要购买高级许可证

要切换到 intelephense,请将以下内容添加到您的 settings.json 中:

{
  "languages": {
    "PHP": {
      "language_servers": ["intelephense", "!phpactor", "..."]
    }
  }
}

要使用高级功能,您可以将您的licence.txt 文件放置在您的主目录中的 ~/intelephense/licence.txt 路径下。或者,您可以将许可证密钥或包含许可证密钥的文件路径作为 intelephense 语言服务器的初始化选项传入。为此,请将以下内容添加到您的 settings.json 中:

{
  "lsp": {
    "intelephense": {
      "initialization_options": {
        "licenceKey": "/path/to/licence.txt"
      }
    }
  }
}

PHPDoc

Zed 支持 PHPDoc 注释的语法高亮。

设置 Xdebug

Zed 的 PHP 扩展为 PHP 和 Xdebug 提供了一个调试适配器。适配器名称为 Xdebug。以下是几种使用方法:

[
  {
    "label": "PHP: Listen to Xdebug",
    "adapter": "Xdebug",
    "request": "launch",
    "port": 9003
  },
  {
    "label": "PHP: Debug this test",
    "adapter": "Xdebug",
    "request": "launch",
    "program": "vendor/bin/phpunit",
    "args": ["--filter", "$ZED_SYMBOL"]
  }
]

如果遇到问题

  • 确保您正在运行的 PHP 版本已安装 Xdebug
  • 确保 Xdebug 配置为在 debug 模式下运行
  • 确保 Xdebug 确实启动了调试会话
  • 检查 Xdebug 和 Zed 之间的主机和端口是否匹配
  • 通过在您尝试调试的页面中使用 xdebug_info() 函数来查看诊断日志