PHP Monitor 5.0 now available

February 02, 2022
Table of Contents

I’m very excited about this update. I’ve never released an update this big for PHP Monitor before, so I had to make sure all of these new changes went through some rigorous testing. After a bunch of betas and a few release candidates, it’s finally here!

There’s a host of new features and improvements in this release: new folder linking, the services indicator in the menu, the updated sites list, real-time configuration change detection, automatic global Composer updates, Fix My Valet and third-party integrations.

A more detailed description can be found here or in the release notes.

I almost considered calling this version 6.0, but decided that would be a bit confusing. If you’d like to see a video of all the changes, check out this video where I walk through all of the changes.

You can upgrade as usual by running:

$ brew upgrade phpmon

It is possible that PHP Monitor will report that your version of Valet is outdated, in which case you may wish to update it.

The Reshuffled Menu

A showcase of the new updated menu, including the services menu.
A showcase of the new updated menu, including the services menu.

The first thing you’re likely to notice is the modified and improved menu. Things have been shuffled around a bit, hopefully for the better.

At the top is the most important information: the PHP versions you have installed, and, most notably, a new section which showcases the status of the services.

At the bottom you’ll find the newly relocated First Aid & Services menu, which I’ll talk about later.

Updated Site List

In version 4.1, I shipped the first version of the domains list. This one shows you all linked and parked domains. The updated version contains a few improvements:

  • The list of domains is a lot faster to load and searching feels much snappier. You will definitely notice big improvements if you happen to have many domains linked. Scrolling should also be buttery smooth.
  • You can now see the PHP version required per project. (Only if composer.json is located in the root directory.)
  • A little checkmark indicator is displayed if the project is compatible with the currently linked PHP version. (This can only be checked if the required PHP version could be determined.)
  • The list is now sensibly sorted based on the absolute path of the projects.
  • You can now search for multiple words. (A single space is sufficient to separate search terms.)

Bonus: If you click on the version number, you’ll get suggestions of a recommended PHP version to switch to, and you’ll find out where the version requirement came from (require or from platform in the composer.json file).

Linking New Sites

From the list of domains, you can now also link a new site. This is a feature that I’d hoped to release with v4.1, but I was not sure if I could do it properly.

In this update, you can now do this easily: select a folder, pick a name for the domain name, and select if you’d like the domain to be secured. That easy.

Global Composer Update

PHP Monitor 5.0 now offers the option to update your global Composer dependencies, right from the menu item, or even automatically!
PHP Monitor 5.0 now offers the option to update your global Composer dependencies, right from the menu item, or even automatically!

Whenever I’d switch between versions of PHP using Valet, I would usually be greeted with the message that reminded me to update my global Composer dependencies. This is a good idea if your using a particular set of tools that need to work with an older (linked) version of PHP.

I was not the only person tired of having to manually run this, so I’ve now included into the app, both as a standalone option, or as a preference. The setting is actually the coolest: it allows you to automatically run composer global update whenever you switch to a different version of PHP with PHP Monitor.

Services & First Aid

A showcase of the expanded Services & First Aid submenu.
A showcase of the expanded Services & First Aid submenu.

Sometimes things just break, unfortunately.

PHP Monitor already does its best to tell you about potential issues when it boots, but sometimes, due to no fault of your own, something happens that causes the services to bork, and you might find yourself in trouble.

Perhaps you forgot to upgrade Valet, perhaps you didn’t run composer global update, perhaps it was something else.

No matter what, when things break, you have a few options in the “First Aid & Services” section of the app. The most robust feature is Fix My Valet, which I detail in the next section.

(I also have an important feature planned for version 5.1, which will help you fix your Homebrew folder permissions. Stay tuned for that!)

You can restart various services in this menu, the status of which will be reflected in the main menu. If you see “red items” (indicator that the service isn’t running) in the menu, you can go here to try to restart all relevant services.

Fix My Valet

Sometimes, though, restarting the services won’t cut it. In that case, it’s time for the nuclear option: Fix My Valet, or “just fucking fix my 💩 already” as I lovingly called this feature during development.

This is a slightly evolved “Force Link PHP 8.1”, which you might remember from the previous version of PHP Monitor.

In most situations, following the instructions in these alerts will get you back up and running without having to consult PHP Monitor (or Homebrew’s) FAQ.

Integration with Third-Party Applications

PHP Monitor can now integrate with third-party applications, like Alfred and Raycast.
PHP Monitor can now integrate with third-party applications, like Alfred and Raycast.

For those with dreams of never touching their mouse, I have good news: I have integrated much of PHP Monitor’s common functionality into a new extensible protocol (which can be disabled via the Preferences window, should you want to).

I’ve already built an Alfred Workflow and I will be building an official Raycast extension soon.

No More Refreshing

This one is fun: in previous versions of PHP Monitor, you always had to “refresh” the menu manually if you made a change in one of the .ini files. Sure enough, the menu would usually update itself quickly, but now any changes are instantly picked. Did you just adjust the memory size available to PHP? You’ll see that change in the menu instantly. Disable an extension? Same story.

There’s only one exception: if you’ve manually linked a different version of PHP, it will take the app a bit to catch up. If you use the built-in switcher, it’ll be instant, of course.

Conclusion

These aren’t all of the changes, but the most notable ones. For a complete list of changes, please check the release notes instead.

Oh, one more thing: once you’ve booted the app about 7 times, or have switched about 40 times, you’ll see a message asking for a donation if the app has helped you. You will only see this message once.

A bunch of people have been incredibly kind and already donated, but I encourage all of you to donate if the app has saved you time: it helps the app, since it helps me invest more time into the app. You can sponsor me here.