Reputation:
I just updated my Mac M1 to Big Sur 11.5.2 and something in VSCode seems to have broken. I am unable to use the latest home-brew php which is installed.
In VSCode its pointing to /usr/bin/php which is Macs built in php, that's not the one im using with home-brew. I tried everything and changed the path but still the same thing.
I checked the one similar question to mine and all it suggests is to use Homebrew which I already am doing so Im not sure what I am doing wrong here.
I am running PHPUnit tests in the VSCode terminal and I am getting the following error:
/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 ->
However when I run the same thing in the Mac terminal by going to the same folder it works perfectly:
/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 ->
When I do which php in both terminals I get a different result:
In Mac terminal:
/Users/themyth/app/Sites/MapFramework/Map -> which php
/opt/homebrew/bin/php
In VSCode terminal:
/Users/themyth/App/Sites/MapFramework/map -> which php
/usr/bin/php
/Users/themyth/App/Sites/MapFramework/map ->
How can I point VSCode to the right version of PHP? I don't think this happened before doing the Big Sur update and I am not sure what to edit.
I tried to open settings.json but I can't find any info about this and I am not sure how to edit this.
Any advice would be appreciated.
I think this issue happened since I installed PHPIntellisense on VSCode but can't be sure, what I do know is that it was working before. I dont know how to configure VSCode to point to the home-brew PHP which is already installed and working perfectly in the regular terminal
I tried to edit settings.json and it made no difference:
{
"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"
}
I have completely uninstalled VSCode and reinstalled everything. To start from fresh and the same problem happens. This is what the current settings.json file looks like:
{
"workbench.colorTheme": "Default Dark+",
"php.validate.executablePath": "/opt/homebrew/bin/php"
}
When I do which php in the terminal in VSCode I always get the same thing /usr/bin/php
The same problem is continuing, Im not sure if this is because of the OSX update.
How could I configure the VSCode terminal to be exactly like the Mac terminal?
I also opened another project where I am using Symfony and I am trying to create a basic controller & that doesn't work too. I have edited the question to be more generic now:
php bin/console make:controller test I get the following error:
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)
What is most frustrating is this seems so straight forward I can't understand what I need to do to fix this
Upvotes: 5
Views: 6797
Reputation: 21
In case you are using XAMPP instead of Homebrew follow these 2 steps: 1.nano ~/.zshrc 2.export PATH=/Applications/XAMPP/bin:$PATH
Upvotes: 0
Reputation: 1103
If you are using Mamp, just check this checkbox
if you are not using Mamp, check your .zshrc file in ~/ folder
Upvotes: 0
Reputation: 502
Have you checked user settings, settings.json. Look for "php.executablePath": "c:\php80\php.exe",
Upvotes: -1
Reputation: 731
It might be you are trying to use XDebug to run/debug your code. In that case despite doing the above, it still didn't work! I had to edit launch.json to add "runtimeExecutable" (which I did in both blocks) so it looks something like this (use brew --prefix php to find the right path to use):
{
// 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"
}
]
}
Upvotes: 0
Reputation: 58
I got the same problem. Open your terminal and write this:
nano ~/.zshrc
At the top of the file you have this:
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
Put this line just under:
export PATH=/opt/homebrew/opt/[email protected]/bin:$PATH
Save and close, restart your terminal and it will normally work.
NB: I write [email protected] but you can do this with all versions you install with homebrew
Upvotes: 11