This week (and a bit) we have been extremely busy working towards that enticing milestone of a stable release. There's still a little while to go with a healthy number of bugs, feedback and other bits in our backlog that we'd like to work through, but each release represents a significant amount of effort and progress towards the end goal.
While we have mostly focused on bug fixes and other stability improvements, this has resulted in some notable changes which you should be aware of.
We have been deferring this handling to a third party piece of code for a number of years which has done a great job, but after a recent discussion and
bug report about it we have decided to modernise this code and bring it into the XF core itself. Developers will now find most of this functionality under the new XF\Util\Str class. Worried about your code that no doubt has used various utf8_ functions in the past? Fear not because we now ship a shim file which proxies those legacy function names to their analogous functions in the new Str class. Though we highly recommend updating existing code to utilise the new Str class as soon as possible as the utf8.php shim is already deprecated and will be removed in XenForo 3.0.
Some of the new Str class has been rewritten to, wherever possible, make use of methods provided by the PHP mbstring extension. This means that, much like many other modern PHP applications and frameworks, XenForo 2.3 now has a hard requirement for the mbstring extension to be available. While not shipped by default, it's highly likely you already have it available. To check if it is, all you have to do is look at the "Server environment report" on your admin control panel index.
The new Str class is making use of modern PHP syntax including enforcing return types and argument types. This may mean that you could see an increase in the number of server error logs related to these string functions. This is intentional. Those logs will likely represent a bug in an add-on's code and therefore should be reported to the add-on developer in the first instance.
Click
here to read more about these changes.
Any entity which is configured to be "indexable` via the XF:Indexable entity behavior and is configured to enqueueIndexNow now requires the implementation of the new ViewableInterface. This is to ensure that your entity has an appropriate canView method so that we can determine content is viewable by a guest before submission to IndexNow. Developers will need to implement this interface and add a canView method (if needed) to ensure content can be submitted to IndexNow.
There is no longer a manual step required to configure webhook verification when using the new PayPal payment provider. Upon creating a payment profile, we use API calls to create and configure the webhook automatically, no longer requiring that as a separate manual step and copy/pasting the webhook ID. If you happen to receive payment provider logs about webhooks not being able to be verified, it will be worth toggling off and on the checkbox for enabling webhook verification to see if that resolves the issue.
That's it for this week, we're off to swat some more bugs. Please read the rest of this post for the standard upgrade boilerplate text
We strongly recommend anyone testing 2.3 during this beta period upgrade as each beta version is released.
More specific details regarding bugs fixed in this release can be found in the
resolved bugs forum.