Table of Contents

PHP RFC: Minimum supported versions for PHP 8.6

Introduction

This RFC proposes a slate of minimum supported software versions for PHP 8.6.

Proposal

autoconf 2.71

The officially documented minimum version of the C standard that is supported by PHP is C11 as of PHP 8.4. This requirement is however not explicitly checked in a programmatic fashion, which means that users trying to build PHP with an older compiler that does not support the C11 standard might encounter non-obvious build failures. The currently used minimum version of autoconf, which is the tool used to generate the ./configure script which is used for feature detection, is 2.68 and does not yet know about C11, preventing it from reliably detecting the minimum requirement and associated features.

We propose increasing the minimum version of autoconf 2.71 from 2.69. The updated version has official support for C11 and also allows to simplify some of the existing autoconf definitions, simplifying maintenance for the PHP Core team.

autoconf is only required when building from git. The official PHP release tarballs contain a pre-generated ./configure script that is generated by the release managers, thus this change does not affect users that build from the official releases. For users that build from git, autoconf 2.71 was released in January 2021 and is available by default in the current stable versions for all common Linux distributions. This includes Debian 12+ (Bookworm), Ubuntu 22.04+ (jammy), RHEL 10, Fedora 38+, Alpine Linux 3.16+, OpenSuse Leap 16.

MySQL 5.7.3 and MariaDB 10.2.4

MySQL 5.7.3 and MariaDB 10.2.4 introduced COM_RESET_CONNECTION, a SQL command to reinitialize a connection's state without requiring reauthentication. This is important to be able to safely reuse connections across requests, i.e. persistent connections, without fear of being in an undesirable leftover state.

MySQL 5.7.3 was released on December 3rd, 2013 and reached its end-of-life alongside all 5.7 minor versions on October 25, 2023.

MariaDB 10.2.4 was released on February 17th, 2017 and reached its end-of-life alongside all 10.2 minor versions on May 23rd, 2022.

This RFC proposes that we use COM_RESET_CONNECTION in PDO and mysqlnd when reusing persistent connections. Users that are on MySQL or MariaDB databases from before this feature was implemented may upgrade to PHP 8.6, but would not be able to use persistent connections. This means that their software could continue to work, but they might lose a performance optimization.

Proposed PHP Version(s)

PHP 8.6

RFC Impact

To the Ecosystem

To Existing Extensions

To SAPIs

None.

Open Issues

None.

Future Scope

None.

Voting Choices

Each proposal is voted on separately and requires a 2/3 majority:

Implement autoconf 2.71 requirement as outlined in the RFC?
Real name Yes No Abstain
Final result: 0 0 0
This poll has been closed.

Implement COM_RESET_CONNECTION requirement as outlined in the RFC?
Real name Yes No Abstain
Final result: 0 0 0
This poll has been closed.

Patches and Tests

Implementation

N/A

References

Rejected Features

None.

Changelog