The Laravel team released the next major version of Laravel Valet (3.0), which introduces running multiple versions of PHP in Valet applications side-by-side.
This super exciting new feature is now officially released, as a part of Valet 3!— Matt Stauffer (@stauffermatt) March 29, 2022
1. Update your global Valet constraint to "^3.0"
2. Run `composer global update laravel/valet`
3. Run `valet install`
4. Party On, Wayne!https://t.co/nBH6rds7ha https://t.co/PvtLKHzx96
Previously, you could specify which version of PHP Valet used to serve applications locally using
valet use firstname.lastname@example.org, but now you can do so on a per-site (including a default) basis using the following commands:
1cd path/to/app23# Isolate the current project4valet isolate email@example.com# Isolate a site by name7# This command will also install the PHP version8# if it's not already installed.9valet isolate firstname.lastname@example.org --site=laravel9x
After isolating a site, you can see that my local Valet install is serving projects using various isolated PHP versions:
And another application using the default installed version of PHP (v8.1):
Another challenge you might run into with this setup is running commands on the CLI with the matching PHP version. What I do is create a symlink to the brew version of PHP somewhere in my path:
1ln -s $(brew --prefix email@example.com)/bin/php $HOME/bin/php7423php74 --version4PHP 7.4.28 (cli) (built: Mar 3 2022 06:26:49) ( NTS )5...
Using this version of PHP, you can prefix commands to composer, etc.:
1php74 $(which composer) install
You might also need to symlink other binaries like
pecl in the same way to install extensions.
Off the heels of PHP Monitor 5.0 for macOS, the author released PHP Monitor 5.2 with support for Valet 3, making management of isolated PHP versions a breeze:
🚀 PHP Monitor 5.2 is now available!— Nico Verbruggen (@nicoverbruggen) March 29, 2022
Most notable: this release adds support for Valet 3. With this new version of Valet, you can now easily set a version of PHP *per domain*! 😎
⬆️ `brew upgrade phpmon`
📝 Learn more: https://t.co/cCAE5R3U0g
🔗 https://t.co/AJs0AzXRWn pic.twitter.com/U9WtWyAst7
For further details, check out the PHP Monitor 5.2 release post, which includes information on how to source multiple versions of PHP from the command line using a CLI helper provided by phpmon.
To upgrade to Valet 3, you can run the following composer command to update and install the latest version of Valet (hat tip to @jakebathman):
1composer global require "laravel/valet:^3.0"