PHP Monitor 26.02 is a major update that adds a variety of useful quality of life additions, various improvements to harden security and lays the foundation for upcoming improvements for a better onboarding experience, the first part of which is now available in this release.
What's New in 26.02
Automatic Startup Fixes
- During the startup procedure, various steps now include a one-click fix for various problems, with a progress view that displays what commands are being executed.
- This is the first part of a two-stage overhaul of the onboarding experience of PHP Monitor, which should make the app easier to use for new users.
Command History
- Via the menu bar item, it is now possible to open the Command History menu (or at boot, by adding the
--chparameter when launching the app via the terminal). - This window displays all of the last few hundred commands executed by the app, and how long each command took to execute. Useful for auditing purposes, or to identify performance bottlenecks.
Other additions
- You can now copy the URL of a selected domain via the context menu. To do this, select a domain in the list, and right click "Copy Domain URL".
- Switching to a different language in Settings no longer requires a restart.
- Various translations have been updated, and open windows will re-open in the same location and with the same dimensions prior to switching languages.
What's Changed
Settings
- The Settings window now correctly updates if a setting value is changed after user interaction elsewhere in the app.
- The app now correctly respects the language override when specified in Settings.
- You can now disable icons for menu items everywhere in PHP Monitor. This makes the app behave like it did on previous versions of macOS.
Translations
- Switching languages to a non-system language now works correctly again (#319).
- Added missing translations for various languages due to recent updates (or translations which were simply not filled via the automated approach used last time).
- Addressed various translation quality issues for every language.
Third-party integrations
- Usage of the
phpmon://protocol is always routed to PHP Monitor, but the app will now no longer respond to such requests without prior explicit user permission. - You are prompted to approve integrations the very first time another application uses the
phpmon://protocol, but only the first time. - Due to this, in Settings, you will find that "Allow third-party integrations" is now turned off by default. If you approve integrations when prompted, the "Allow third-party integrations" setting will be turned on.
Bug fixes
- The current state of the Homebrew services are now loaded as part of the startup procedure, preventing the app from displaying incorrect info when opening the menu for the first time.
- Hardened checks for
config.json, as a maliciously or incorrectly formattedconfig.jsoncould crash the app. - Addressed a crash issue caused by a malformed URL via the
phpmon://protocol due to force unwrapping after splitting a string. - Invalid characters are stripped from third-party apps added via
config.json. - Custom environment variables are now set via
task.environmentinstead of simply appended. - Addressed a crash issue caused by reloading a PHP configuration file that is no longer valid.
- Addressed a crash issue caused by a race condition related to Homebrew service loading.
- Addressed a crash issue caused by a race condition related to shell command execution when a command is terminated.
Big thanks to everyone who submitted their crash reports!
Patch History
v26.02.1
- Fixed an issue where some preferences set in
config.jsonwould not be correctly loaded. (#320)
How to install or upgrade
If you have an existing PHP Monitor.app in your Applications folder you can use the built-in updater. (Click on the icon in your menu bar, and choose "Check for updates..." to initiate this process, or wait for a notification.)
If you haven't installed PHP Monitor yet, you can click here to download the latest release. Place the app in your Applications folder and you may want to consult the README file for some more information.
Full Changelog: v26.01...v26.02