Table of Contents
I’ve just released PHP Monitor 5.2 with various new features, performance improvements and bug fixes.
This release comes with a reworked domains list window and has support for Laravel Valet 3.0. As such, PHP Monitor now also supports site isolation. That’s a big deal and if you read on you can find out why that is the case.
As usual, my thanks goes out to the various beta testers who provided feedback and reported bugs for this release, and I very much appreciate those who have donated money to support the project.
New Features
Updated domains list
New table-based UI
The domains list now sports a table-based UI: You can rearrange the contents of the table based on the various columns that have been made available.
You can also rearrange the columns. The order and sorting is remembered, so you only have to set it once.
Which PHP is being used right now?
If you examine the panel, you’ll note the Active column behaves a bit differently from before. The active PHP version displayed is the version that is currently used to serve the domain.
This used to be the target PHP version, as defined in composer.json
. You’ll see this value change if you have isolated the site. The PHP version requirement as declared in your project can be found under the Project Type column, below the type of project.
Isolation via right-click
You can select a domain, and open the context menu (right-click) to isolate a domain. This allows you to pick a fixed version to be used for that domain. You will need to have Valet 3 installed for this feature to be enabled.
Valet 3 support
Status of Valet 2 support
This release introduces support for Valet 3, which comes with some delightful new features, but also drops support for PHP 5.6.
Since some of you might need access to PHP 5.6, this release obviously still supports Valet 2 as well, but the available features in PHP Monitor will differ based on which version of Valet you are running:
Feature Availability | Valet 2.21+ | Valet 3.0+ |
---|---|---|
Switch Global PHP | ✅ | ✅ |
PHP 8.2—PHP 7.0 | ✅ | ✅ |
PHP 5.6 | ✅ | 🚫 |
Domain Linking | ✅ | ✅ |
Domain Secure (TLS) | ✅ | ✅ |
Domain Isolation | 🚫 | ✅ |
Upgrading to Valet 3
If you would like to make use of the new version of Valet, you must first update the version constraint in your global composer.json
file:
"require": {
"laravel/valet": "^3.0",
(...)
}
Upgrade your global dependencies:
$ composer global update
And upgrade Valet, by running:
$ valet install
Default site support
If you have a default site set up in your Laravel Valet config.json
file, this site will now show up in the domains list.
Easy CLI access to various PHP versions
PHP Monitor 5.2 can make it easier for you to run terminal commands using a specific version of PHP.
Since you can now force specific sites to use a particular version of PHP, sometimes you’ll need to run a command with that version of PHP, too.
PHP Monitor registers these helpers for you, assuming you are permitted to write to the /usr/local/bin
folder. Make sure you own the folder first, or the helpers will not be created:
sudo chown "$(whoami)" /usr/local/bin
After doing that, restart PHP Monitor.
Here’s how you can use these helpers. First, I recommend you check which version is globally linked:
$ php -v
PHP 8.1.4 (cli) (built: Mar 18 2022 09:32:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.4, Copyright (c) Zend Technologies
with Zend OPcache v8.1.4, Copyright (c), by Zend Technologies
with Xdebug v3.1.1, Copyright (c) 2002-2021, by Derick Rethans
This is the globally linked PHP version. Now, let’s say we want to use PHP 8.0 in this terminal, from now on. We can source
the pm80
helper in that case. (If we wanted PHP 7.4, we’d use pm74
.)
You can use the shorthand for source
, which is .
:
$ . pm80
PHP Monitor has enabled this terminal to use PHP 8.0.
The script includes a little notice, so you’ll be able to see that it worked.
Alternatively, you can run source pm80
as well. Any subsequent commands in this particular terminal session will run with that version of PHP, so keep that in mind:
$ php -v
PHP 8.0.17 (cli) (built: Mar 18 2022 09:32:28) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.17, Copyright (c) Zend Technologies
with Zend OPcache v8.0.17, Copyright (c), by Zend Technologies
with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
If you run composer update
now, it’ll use that version of PHP as well. You can close the terminal you have active and open a new terminal to switch back to the globally linked PHP version.
If you’d like to inspect these helpers, you can find them in /usr/local/bin
for every PHP version that is available on your system. They are overwritten whenever the app boots.
General improvements
I was able to track down a minor bug in how some tasks were delegated to background threads, and discovered a performance issue. This has been resolved, and PHP Monitor should open faster than ever before.
(Especially opening the menu for the first time should no longer be subject to slight stuttering or judder. It was really bothering me so I hope you’re all happy too.)
Upgrade instructions
If you want to, you can upgrade to Valet 3. (This will enable site isolation but disable PHP 5.6 support in PHP Monitor, so choose based on your requirements.)
brew upgrade phpmon
If you are having issues, you can run brew update-reset
to ensure Homebrew’s package information is up-to-date with the latest on GitHub.
Bottom Line
PHP Monitor 5.2 comes with a variety of improvements. You can find the complete changelog on GitHub. I hope you this release ends up being useful.
Oh, and if you haven’t done so yet, please consider sponsoring me. Since starting work on PHP Monitor in 2019, I’ve spent more than 200 hours coding and supporting this project and I’m still not charging for it! 😙
Want to support the project?
Learn more or choose the option you prefer: