History: PHP 8
Preview of version: 32
PHP 8
Executive summary: As of 2023-04-10, Tiki doesn't support PHP 8.0 or 8.1. Tiki24 and Tiki25 work beautifully on PHP 7.4. While official PHP 7.4 support ended in November 2022, various actors of the ecosystem continue support by backporting security patches. The Tiki project will pursue work to support PHP 8.x in Tiki26. We are now Using GlitchTip as part of the Tiki development process so this will permit to catch issues that are undetected by the static analysis tools.
Details
A major version is a good time for major innovation, including changes that are not backward-compatible.
- PHP 7.0 was released on 2015-12-03, and then we saw 7.1, 7.2, 7.3 and 7.4
- PHP 8.0 was released on 2020-11-26, and then we saw 8.1 and 8.2 (so far)
Backward-incompatible changes once per 5 years is quite reasonable. And Tiki needs to adapt accordingly.
Adoption of PHP8 is slow:
One way to interpret this is that the community is very pleased with PHP7 and not in a hurry to take advantage of the better performance and features of PHP8. But it's also because it's significant work for some projects.
Some web hosting companies will cease supporting PHP 7.x as soon as PHP does. However, other hosting companies continue to offer it. Some charge extra for this service. They may want to incite clients to move to PHP 8.x which is better and uses fewer resources (hosting company saves on resources).
Even if PHP doesn't support PHP 7.4 anymore, some Linux distributions will backport security fixes. Check with your hosting provider for details.
The Tiki community has an automatic daily test upgrade from Tiki 24 to Tiki 25 with PHP 8.1 to monitor progress:
https://dev.tiki.org/Pre-dogfood-servers-for-Tiki-25-release-process#Trunk_with_PHP81
Please reach out to Marc Laporte if you can help. At this phase, we need developers that can help adapt code to PHP8 in Tiki, but also in external libraries that we get from Composer.
- Check if external lib supports PHP8. If not, investigate and help make it happen.
- If lib supports PHP8, switch Tiki to use it and make sure everything is working as expected. If not, help make it happen.
Once that has been done for all libraries, we'll be looking for volunteers to test Tiki instances with PHP8. Doing so with GlitchTip would increase efficiency in bug reporting.
PHP8 brings massive innovations and will facilitate improving many things in Tiki, notably performance, error reporting and Realtime handling.
With such a big code base / feature set, it is a lot of work (and during some of the same period as the move from Bootstrap 4 to 5). If you have financial resources to sponsor the work, please reach out to Marc Laporte.
Related links
- Versions
- Requirements
- https://tiki.org/forumthread78628-Tiki-24-and-PHP-8
- https://www.php.net/manual/en/migration80.incompatible.php
- https://www.php.net/releases/8.0/en.php
- https://www.php.net/manual/en/migration81.incompatible.php
- https://www.php.net/releases/8.1/en.php
- https://github.com/remicollet/php-src-security
- https://www.freexian.com/lts/php/
- https://thephp.foundation/blog/2022/11/30/php-core-roundup-8/