PHP Version/Executable 在 VSCode 终端中错误,但在 Mac 终端中完美运行

Wrong PHP Version/Executable in VSCode terminal but works perfectly in Mac terminal

我刚刚将我的 Mac M1 更新到 Big Sur 11.5.2,VSCode 中的一些东西似乎坏了。 我无法使用已安装的最新自制软件 php。

在 VSCode 中,它指向 /usr/bin/php,它是 php 中内置的 Mac,这不是我在自制软件中使用的那个。我尝试了所有方法并更改了路径,但还是一样。

我检查了一个与我的类似的问题,它只建议使用 Homebrew,我已经在这样做了,所以我不确定我在这里做错了什么。

我正在 运行 宁 PHP 在 VSCode 终端中进行单元测试,我收到以下错误:

/Users/themyth/App/Sites/MapFramework/map -> ./vendor/bin/phpunit tests                           
/usr/bin/php declares an invalid value for PHP_VERSION.
This breaks fundamental functionality such as version_compare().
Please use a different PHP interpreter.
/Users/themyth/App/Sites/MapFramework/map ->

然而,当我 运行 在 Mac 终端中通过转到同一个文件夹时,它完美地工作:

/Users/themyth/app/Sites/MapFramework/Map -> ./vendor/bin/phpunit tests                                            
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.0.9
Configuration: /Users/themyth/App/Sites/MapFramework/Map/phpunit.xml

...R                                                                4 / 4 (100%)

Time: 00:00.004, Memory: 6.00 MB

There was 1 risky test:

1) tests\map\core\exception\MapExceptionTest::testDisplayMethodShowsBasicStaticHtml
This test did not perform any assertions

/Users/themyth/App/Sites/MapFramework/Map/tests/map/core/exception/MapExceptionTest.php:16

OK, but incomplete, skipped, or risky tests!
Tests: 4, Assertions: 4, Risky: 1.
/Users/themyth/app/Sites/MapFramework/Map -> 

当我在两个终端中执行 php 时,我得到不同的结果:

在Mac终端中:

/Users/themyth/app/Sites/MapFramework/Map -> which php
/opt/homebrew/bin/php

在VSCode终端中:

/Users/themyth/App/Sites/MapFramework/map -> which php
/usr/bin/php
/Users/themyth/App/Sites/MapFramework/map -> 

如何将 VSCode 指向 PHP 的正确版本?我不认为这发生在大苏尔更新之前,我不确定要编辑什么。

我尝试打开 settings.json,但找不到任何相关信息,而且我不确定如何编辑它。

如有任何建议,我们将不胜感激。


编辑 1:

我认为自从我在 VSCode 上安装了 PHPIntellisense 后就出现了这个问题,但不能确定,我只知道它之前是有效的。 我不知道如何配置 VSCode 以指向已经安装并在常规终端中完美运行的自制软件 PHP


编辑 2

我尝试编辑 settings.json 但没有任何区别:

{
    "workbench.colorTheme": "Monokai Dimmed",
    "security.workspace.trust.untrustedFiles": "open",
    "redhat.telemetry.enabled": false,
    "php.validate.executablePath": "/opt/homebrew/bin/php",
    "php.executablePath": "/opt/homebrew/bin/php"
}

编辑 3

我已经完全卸载 VSCode 并重新安装了所有内容。从新鲜开始,同样的问题发生了。 这是当前 settings.json 文件的样子:

{
    "workbench.colorTheme": "Default Dark+",
    "php.validate.executablePath": "/opt/homebrew/bin/php"
}

当我在 VSCode 的终端中执行 php 时,我总是得到同样的结果 /usr/bin/php

同样的问题还在继续,我不确定这是否是因为 OSX 更新。

如何将 VSCode 终端配置为与 Mac 终端完全一样?

我还打开了另一个我正在使用 Symfony 的项目,我正在尝试创建一个基本控制器,但它也不起作用。 我现在将问题编辑得更通用:

phpbin/consolemake:controller测试 我收到以下错误:

Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.3.24-(to be removed in future macOS)

最令人沮丧的是这看起来太简单了我不明白我需要做什么来解决这个问题

我遇到了同样的问题。打开你的终端并写下:

nano ~/.zshrc

在文件的顶部你有这个:

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

将此行放在下面:

export PATH=/opt/homebrew/opt/php@8.0/bin:$PATH

保存并关闭,重启终端即可正常使用。

注意:我写的是 php@8.0,但您可以对使用自制软件安装的所有版本执行此操作

您可能正在尝试使用 XDebug run/debug 您的代码。那样的话尽管做了上面的,还是不行!我不得不编辑 launch.json 以添加“runtimeExecutable”(我在两个块中都做了)所以它看起来像这样(使用 brew --prefix php 找到正确的使用路径):

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 0,
        "runtimeArgs": [
          "-dxdebug.start_with_request=yes"
        ],
        "runtimeExecutable": "/opt/homebrew/bin/php",
        "env": {
          "XDEBUG_MODE": "debug,develop",
          "XDEBUG_CONFIG": "client_port=${port}"
        }
      },
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "runtimeExecutable": "/opt/homebrew/bin/php"
        }
    ]
}

您检查过用户设置了吗,settings.json。寻找 "php.executablePath": "c:\php80\php.exe",