As my development machine was upgraded over the years, support for older PHP versions was lost, despite the promise that it would support PHP 7.0 or newer.
This release restores support for these and adds support for PHP versions that were not working before and were feasible to add.
This includes PHP 5.4 and up. PHP 5.4 was tested on Amazon Linux 2, PHP 5.6 was tested on Fedora 24. [1]
This inevitably brought in some (incompatible) changes to the PHP module:
break
was a keyword in the PHP language before version 8.0, soOpenCReport\Break
had to be renamed toOpenCReport\ReportBreak
to work under PHP 7.4 and older.- PHP 7.3 introduced some changes to the internal hash handling which allowed implementing a new PHP array datasource driver in 0.8.6. That obviously doesn't work under under PHP 7.2 or older. The old PHP array datasource code was re-implemented under the new datasource API regime conditionally. The old method can be used with
./configure --with-opencreports-static-array
with PHP 7.3 and newer and it's automatically used with older versions.
Miscellaneous changes:
- As compilation and testing was performed under older Linux versions, some superficial changes were necessary to support them.
- PostgreSQL support is built conditionally now, based on the presence of
PQdescribePortal()
. This client API function was introduced in PostgreSQL 8.2.0 in 2006. - Some unit tests gained new output variants that are considered successful. The difference is in locale behaviour, which can be different across GLIBC and PHP versions and can also depend on the installed set of language support.
[1] An attempt was also made to build OpenCReports under CentOS 5 to test PHP 5.3 but this would need substantial package upgrades and may break the system.