This PR includes some prep work for PHP 8.3 that will work with our current PHP version too.
Update our CI to include tests against PHP 8.3 so we can detect issues with it before we formally upgrade to it later this year.
Update some string functions to be UTF-8 aware. PHP 8.2 made a backwards incompatible change where many string functions that depend on case are no longer locale-aware. I've combed through the code and found a few instances where we should really be using UTF-8 versions of these functions. We have other cases where those functions are used but only against ASCII strings so those instances were not changed.
PHP 8.3 introduced the mb_str_pad() function but rather than conditionally defining it based on PHP version, just use the UTF-8 version instead. This only impacts mktable.php.
These are likely not the exhaustive set of required changes for PHP 8.3. We'll focus on finding those in a few months after we upgrade a clone of TEST to use it.
This PR includes some prep work for PHP 8.3 that will work with our current PHP version too.
mb_str_pad()
function but rather than conditionally defining it based on PHP version, just use the UTF-8 version instead. This only impactsmktable.php
.These are likely not the exhaustive set of required changes for PHP 8.3. We'll focus on finding those in a few months after we upgrade a clone of TEST to use it.
Sandbox: https://www.pgdp.org/~cpeel/c.branch/prep-for-php-8.3/
Testing suggestions: