History: PHP 8
Preview of version: 38 (current)
PHP 8
Executive summary: PHP8 support started in Tiki26. The minimum is PHP 8.1 (PHP 8.0 will never be supported). If you are on PHP 7.4, please use Tiki24 LTS.
As of 2024-01-01, the migration to PHP 8.1 was pretty much done, and there will be more issues popping up from time to time as more community members upgrade their Tikis. Mostly to Tiki27 LTS.
Details:
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 support PHP 8.1 in Tiki26, with planned support for PHP 8.1, 8.2 and 8.3 in Tiki27LTS. 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, 8.2 and 8.3 (8.4 is expected)
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. The upgrade to PHP8 is significantly more challenging than the upgrades to PHP7 or PHP5.
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 25 to Tiki 26 with PHP 8.1 to monitor progress:
https://dev.tiki.org/Pre-dogfood-servers-for-Tiki-26-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/