Some users might not reboot their computer and in that situation they
will never see the message in bba961269c.
This has been remedied by also checking how many times the version
switch has occurred.
The thresholds for the alert are now:
- Must have launched the app at least 7 times
OR
- Must have switched PHP versions at least 40 times
If the alert has been seen, it'll never be shown again. For more info
please consult the linked commit for the rationale behind this change.
Okay, so this commit adds a sponsor alert. I wanted to elaborate.
Why? At this point I've invested so much of my free time in the app that
any and all donations would be incredibly welcome. Of course, phpmon
as it exists today must always remain free and open source.
(I dislike it when an app goes open source and then becomes paid.)
Obviously, I don't want to take useful features away from users:
1) usage of the old version is the only option for those who won't pay
2) piracy is an alternative and I don't want to deal with that
3) the positive sentiment around the app disappears ("sellout!")
Instead, I will nicely ask for donations once the app has been
successfully launched 7 times or more. This alert should only
appear once.
Fun fact: PHP Monitor started as a single menu item with only
options to switch between version numbers.
Thanks to all the support, it has now become so much more.
To those who have already contributed: thank you very much.
I hope you continue to use and enjoy the app.
Cheers!
This is much faster than checking the actual driver, which might take
a while if you have many sites. If we're just checking the actual
composer file (which is already parsed) this should be much faster.
This means that the user cannot tell we swapped out the view for another
view. The services are re-fetched upon creating the new view, but there
is a slight delay. This change conveniently "hides" this delay.
BEFORE
- Upon creating ServicesView2, ServicesView is deinitialized
- ServicesView2 shows question marks (no services data persisted)
- ServicesView2 async loads services, when done question marks removed
AFTER
- Upon creating ServicesView2, ServicesView is deinitialized
- ServicesView2 loads stale data (services data was persisted)
- ServicesView2 async loads services, when done stale data replaced
The version constraint checks will also be used in the future to
evaluate whether any given site's PHP constraint (if set) is
valid for the currently linked version of PHP.
For example, assuming you have PHP 8.1.2 linked, we could evaluate:
* A site requires "8.0" -> invalid
* A site requires "^8.0" -> valid
* A site requires "^8.0.0" -> valid
* A site requires "~8.0" -> valid
* A site requires "~8.0.0" -> invalid
Currently, this constraint check is used to determine which versions
that are currently installed are good suggestions to switch to.
If you have a site with constraint "^8.0" for example, and you have
PHP 8.0 and 8.1 installed (with 8.1 linked), then you will get a
suggestion to switch back to 8.0.