Dear All,
Joomla\Application\Client is a weird beast. It's a browser detection library - but one that detects only the most common browsers and engines, also not using a good API (relying on getting all properties of the browser via Client::__get()). Generally this makes it pretty inflexible for use by people who want to use it in everyday scenarios. I'm sure we are all aware it's predecessor JBrowser (https://github.com/joomla/joomla-cms/blob/staging/libraries/joomla/environment/browser.php) in the CMS which was much more complete in browsers recognized but proved extremely hard to maintain.
To that end I started investigating moving away from Client and moving towards a 3rd party solution we could import with composer. The two most promising options I could find were https://github.com/gabrielbull/php-browser and https://github.com/Ikimea/Browser. Whilst both solutions are acceptable in terms of browsers covered they do not cover the browser engine. This is important because we need an explicit check for the Trident engine in our own Joomla\Application\Web::redirect() method.
The alternative to a 3rd party solution is we expand our checks back towards how we found things in JBrowser with a more complete selection of browsers and move it into it's own standalone package that the Application package can import as a competitive solution to other products.
Does anyone have any thoughts or suggestions?
Kind Regards,
George