-
Notifications
You must be signed in to change notification settings - Fork 829
PHP 8.5 migration guide #4906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
PHP 8.5 migration guide #4906
Conversation
|
I forgot to add UPGRADING for |
|
php/php-src#20239 might also need to be incorporated |
Added in 4f86bb5
Changed in 3d7f6f5 |
|
Added in a288458. |
5369184 to
928e2f4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for starting this! I left a lot of comments that I would like to have addressed. :)
| <simpara> | ||
| <link linkend="language.operators.execution">The backtick operator</link> | ||
| as an alias for <function>shell_exec</function> has been deprecated. | ||
| </simpara> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: indentation seems to be missing for the content of the simpara?
| <!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_constant_redeclaration --> | ||
|
|
||
| <simpara> | ||
| Constant redeclaration has been deprecated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Constant redeclaration has been deprecated. | |
| Constant redeclaration has been deprecated. | |
| Note that this already generated a warning and will continue to do so. |
| <!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_using_values_null_as_an_array_offset_and_when_calling_array_key_exists --> | ||
|
|
||
| <simpara> | ||
| Using null as an array offset or when calling <function>array_key_exists</function> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Using null as an array offset or when calling <function>array_key_exists</function> | |
| Using &null; as an array offset or when calling <function>array_key_exists</function> |
| <simpara> | ||
| The <link linkend="object.wakeup">__wakeup()</link> magic method of | ||
| <interfacename>DateTimeInterface</interfacename>, | ||
| <classname>DateTime</classname>, <classname>DateTimeImmutable</classname>, | ||
| <classname>DateTimeZone</classname>, <classname>DateInterval</classname>, | ||
| and <classname>DatePeriod</classname> has been deprecated in favour of | ||
| the <link linkend="object.unserialize">__unserialize()</link> magic method. | ||
| <!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_sleep_and_wakeup_magic_methods --> | ||
| </simpara> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't remember if this wasn't reverted with the soft deprecation RFC, so this would need to be removed.
| The <constant>MHASH_<replaceable>*</replaceable></constant> constants | ||
| have been deprecated. These have been overlooked when the mhash*() function | ||
| family has been deprecated per | ||
| <!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_1#mhash_function_family --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This text doesn't make much sense as the RFC which is being linked to is in a comment
| The <link linkend="language.oop5.cloning">clone language construct</link> | ||
| is now a function and supports reassigning (readonly) properties during | ||
| cloning via the new <property>$withProperties</property> parameter. | ||
| <!-- RFC: https://wiki.php.net/rfc/clone_with_v2 --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TimWolla it cannot be disabled via disable_functions right?
| <title>EXIF</title> | ||
|
|
||
| <simpara> | ||
| Added OffsetTime* Exif tags. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Added OffsetTime* Exif tags. | |
| Added support for <literal>OffsetTime*</literal> Exif tags. |
| when validation fails. | ||
| The new flag cannot be combined with | ||
| <constant>FILTER_NULL_ON_FAILURE</constant>; trying to do so will result | ||
| in a <classname>ValueError</classname> being thrown. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| in a <classname>ValueError</classname> being thrown. | |
| in a <exceptionname>ValueError</exceptionname> being thrown. |
| <title>XSL</title> | ||
|
|
||
| <simpara> | ||
| The $namespace argument of <methodname>XSLTProcessor::getParameter</methodname>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The $namespace argument of <methodname>XSLTProcessor::getParameter</methodname>, | |
| The <parameter>$namespace</parameter> argument of <methodname>XSLTProcessor::getParameter</methodname>, |
| <methodname>XSLTProcessor::setParameter</methodname> and | ||
| <methodname>XSLTProcessor::removeParameter</methodname> now actually works | ||
| instead of being treated as empty. | ||
| This only works if the $name argument does not use Clark notation and is not a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| This only works if the $name argument does not use Clark notation and is not a | |
| This only works if the <parameter>$name</parameter> argument does not use Clark notation and is not a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for starting this! I left a lot of comments that I would like to have addressed. :)
Based on PHP 8.5 UPGRADE NOTES and past migration guides.