buttonmen-dev / buttonmen

Buttonmen - an online dice game
Other
16 stars 23 forks source link

Upgrade PHP to 8.3 #2936

Open blackshadowshade opened 3 months ago

blackshadowshade commented 3 months ago

I note that we're going to need to upgrade our infrastructure relatively soon (linking #2784 and #2928), so I'm opening this issue for the PHP part of that.

On #2784, I noted the steps we would need to take to migrate from 7.2-ish to 8.0.

blackshadowshade commented 3 months ago

Issues migrating from 7.2 to 8.0 (Copied from #2784):

blackshadowshade commented 3 months ago

Potential issues migrating from 8.0 to 8.1 (from https://www.php.net/manual/en/migration81.incompatible.php):

MySQL Driver

Integers and floats in result sets will now be returned using native PHP types instead of strings when using emulated prepared statements. This matches the behavior of native prepared statements. The previous behaviour can be restored by enabling the PDO::ATTR_STRINGIFY_FETCHES option.

blackshadowshade commented 3 months ago

Potential issues migrating from 8.1 to 8.2 (from https://www.php.net/manual/en/migration82.incompatible.php):

str_split() returns an empty array for an empty string now. Previously it returned an array with a single empty string entry. mb_str_split() is not affected by this change as it was already behaving like that.

blackshadowshade commented 3 months ago

Potential issues migrating from 8.2 to 8.3 (from https://www.php.net/manual/en/migration83.incompatible.php)

The range() function has had various changes:

If $step is a float that can be interpreted as an int, it is now done so.

blackshadowshade commented 3 months ago

Looks like the migration to PHP 8.3 should be pretty straightforward.