There was an issue where updating a configuration file (including .ini)
or having an action occur that marked PHP Monitor as busy would prevent
the icon from updating correctly. This happened because access to the
busy boolean state variable could happen from various threads.
Since adding main thread isolation to the variable, you must access
`PhpEnvironments.shared.isBusy` via the main thread, therefore ensuring
that the busy state that is read from the app is always synchronized
and accurate whenever it is checked, making it so that going from
busy to no longer busy can no longer fail.
(It was possible for work in another thread to complete and fail to set
the icon to "not busy" because the work was done faster than the icon
could be set to busy.)
It's perfectly possible to run Laravel Valet (standalone) and Laravel
Herd side-by-side or mix usage, but it's not recommended and/or
supported (especially since Herd recommends migrating away from regular
Valet and may terminate Valet's services).
To avoid issues, PHP Monitor won't work if Herd is currently running.
It's totally fine to relaunch Herd after PHP Monitor's done starting
up, since the check only happens at launch.
Also, PHP Monitor warns about the PATH changes in `~/.zshrc` after
installing Laravel Herd, because that may impact the usage of
PHP aliases/global PHP version in terminal provided by PHP Monitor.
Dictionary key order in Swift isn't a thing, so the process is
now a two-pronged approach: 1) check for specific apps, 2) check for
specific broad frameworks after no other matches were made.
Previously, detection would only work correctly some of the time.
Also cleaned up the `getNotableDependencies()` method.
- Adds a fallback for missing keys
- Make type column resizable on domains
- Localized "Open with" text in context menu
- Updated some Dutch translations
- Fixed issue with Version Manager
- Separate behaviour for previews for Version Manager
- Remove verbose logging when previews are in use
(Note: The latter change may break various other previews. Will need to
investigate this particular issue.)
It was necessary to do some summer cleaning. Here's what's changed:
* First, I'm taking a new modular approach to Swift-based components
that are part of PHP Monitor.
* I've fixed the naming of various parts of the app. I plan on doing
an even deeper check in the future. The following are affected:
- "PHP Formulae Status" is now known as "PHP Version Manager".
- "Warnings List" is now known as "PHP Doctor".
- The associated window controllers have also been updated.
(I've also added a new module: "PHP Config Editor". We'll see what that
brings in the future... but the main purpose will be to edit key PHP
configuration values without needing to go to the .ini files.)