Loading...
 
Skip to main content

History: PHP 8

Source of version: 29

Copy to clipboard
            ! {{page}}

Executive summary: As of 2022-11-26, Tiki doesn't support PHP 8.0 or 8.1. ((Tiki24)) and ((Tiki25)) work beautifully on PHP 7.4. While [https://www.php.net/supported-versions|official PHP 7.4 support] ends 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)).

!! 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:
{img type="attId" attId="127" desc="According to W3Techs, PHP 7 is used by 71.1% of all the websites who use PHP. PHP 8 is only at 5.8%, beaten by PHP5 at 23.0% Source: https://w3techs.com/technologies/details/pl-php"}

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
* ((tw: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/

        

History

Advanced
Information Version
Marc Laporte 38
Marc Laporte 37
Marc Laporte 36
Marc Laporte Page renamed from PHP8 to PHP 8. Semantic alias redirect created 35
Marc Laporte 34
Marc Laporte Burn the bridges! 33
Marc Laporte 32
Marc Laporte An update 31
Marc Laporte 30
Marc Laporte 29
Marc Laporte 28
Marc Laporte 27
Marc Laporte 26
Marc Laporte 25
Marc Laporte 24
Marc Laporte 23
Nat Okpe 22
Marc Laporte 21
Marc Laporte 20
Marc Laporte 19
Marc Laporte 18
Marc Laporte 17
Jonny Bradley 16
Marc Laporte 15
Marc Laporte Telling people how/when they can help 14
Marc Laporte 13
Marc Laporte 12
Marc Laporte 11
Marc Laporte re-work page 10
Marc Laporte 9
Marc Laporte 8
Marc Laporte 7
Marc Laporte 6
Marc Laporte 5
Marc Laporte 4
Marc Laporte 3
Marc Laporte 2
Marc Laporte 1