mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 08:28:54 +00:00

Initial version for the PHP 8.0 to 8.1 migration guide. Co-authored-by: Kamil Tekiela <tekiela246@gmail.com>
239 lines
7.2 KiB
XML
239 lines
7.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<sect1 xml:id="migration81.other-changes" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Other Changes</title>
|
|
|
|
<sect2 xml:id="migration81.other-changes.sapi">
|
|
<title>Changes in SAPI Modules</title>
|
|
|
|
<sect3 xml:id="migration81.other-changes.sapi.cli">
|
|
<title>CLI</title>
|
|
|
|
<para>
|
|
Using <option>-a</option> without the <link linkend="book.readline">readline extension</link> will now result in an error.
|
|
Previously, <option>-a</option> without readline had the same behavior as
|
|
calling <command>php</command> without any arguments, apart from printing an additional
|
|
<literal>"Interactive mode enabled"</literal> message.
|
|
This mode was <emphasis>not</emphasis> interactive.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.sapi.phpdbg">
|
|
<title>PHPDBG</title>
|
|
|
|
<para>
|
|
Remote functionality from <link linkend="book.phpdbg">phpdbg</link> has been removed.
|
|
</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="migration81.other-changes.functions">
|
|
<title>Changed Functions</title>
|
|
|
|
<sect3 xml:id="migration81.other-changes.functions.core">
|
|
<title>Core</title>
|
|
|
|
<para>
|
|
The order of properties used in &foreach;, <function>var_dump</function>,
|
|
<function>serialize</function>, object comparison, etc. was changed.
|
|
Properties are now ordered naturally according to their declaration
|
|
and inheritance. Properties declared in a base class are going
|
|
to be before the child properties.
|
|
</para>
|
|
<para>
|
|
This order is consistent with internal layout of properties in
|
|
<code>zend_object</code> structure and repeats the order in
|
|
<code>default_properties_table[]</code> and <code>properties_info_table[]</code>.
|
|
The old order was not documented and was caused by class inheritance implementation details.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.functions.filter">
|
|
<title>Filter</title>
|
|
|
|
<para>
|
|
The <constant>FILTER_FLAG_ALLOW_OCTAL</constant> flag of the
|
|
<constant>FILTER_VALIDATE_INT</constant> filter
|
|
now accept octal string with the leading octal prefix
|
|
(<literal>"0o"</literal>/<literal>"0O"</literal>).
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.functions.gmp">
|
|
<title>GMP</title>
|
|
|
|
<para>
|
|
All <link linkend="book.gmp">GMP</link> functions now accept octal string with the leading octal prefix
|
|
(<literal>"0o"</literal>/<literal>"0O"</literal>).
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.functions.pdo-odbc">
|
|
<title>PDO ODBC</title>
|
|
|
|
<para>
|
|
<methodname>PDO::getAttribute</methodname> with
|
|
<constant>PDO::ATTR_SERVER_INFO</constant> and
|
|
<constant>PDO::ATTR_SERVER_VERSION</constant>
|
|
now return values instead of throwing <classname>PDOException</classname>.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.functions.reflection">
|
|
<title>Reflection</title>
|
|
|
|
<para>
|
|
<methodname>ReflectionProperty::setAccessible</methodname> and
|
|
<methodname>ReflectionMethod::setAccessible</methodname>
|
|
no longer have an effect.
|
|
Properties and methods are now always considered accessible via Reflection.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.functions.standard">
|
|
<title>Standard</title>
|
|
|
|
<para>
|
|
<function>syslog</function> is now binary safe.
|
|
</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="migration81.other-changes.extensions">
|
|
<title>Other Changes to Extensions</title>
|
|
|
|
<sect3 xml:id="migration81.other-changes.extensions.gd">
|
|
<title>GD</title>
|
|
|
|
<para>
|
|
<function>imagewebp</function> can now do lossless WebP encoding
|
|
by passing <constant>IMG_WEBP_LOSSLESS</constant> as the quality.
|
|
</para>
|
|
<para>
|
|
This constant is only defined, if the used libgd supports
|
|
lossless WebP encoding.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.extensions.mysqli">
|
|
<title>MySQLi</title>
|
|
|
|
<para>
|
|
<methodname>mysqli_stmt::next_result</methodname> and
|
|
<methodname>mysqli::fetch_all</methodname>
|
|
are now available when linking against libmysqlclient.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.extensions.openssl">
|
|
<title>OpenSSL</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
The <link linkend="book.openssl">OpenSSL extension</link> now requires at least OpenSSL version 1.0.2.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
OpenSSL 3.0 is now supported. Be aware that many ciphers are no longer
|
|
enabled by default (part of the legacy provider), and that parameter
|
|
validation (e.g. minimum key sizes) is stricter now.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.extensions.phar">
|
|
<title>Phar</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
SHA256 is now used by default for signatures.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Added support for OpenSSL_SHA256 and OpenSSL_SHA512 signatures.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.extensions.snmp">
|
|
<title>SNMP</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Added support for SHA256 and SHA512 for the security protocol.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect3>
|
|
|
|
<sect3 xml:id="migration81.other-changes.extensions.standard">
|
|
<title>Standard</title>
|
|
|
|
<para>
|
|
<code>--with-password-argon2</code> now uses pkg-config to detect libargon2.
|
|
As such, an alternative libargon2 location should now be specified using
|
|
<envar>PKG_CONFIG_PATH</envar>.
|
|
</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="migration81.other-changes.ini">
|
|
<title>Changes to INI File Handling</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
The <link linkend="ini.log-errors-max-len">log_errors_max_len</link>
|
|
INI directive has been removed.
|
|
It no longer had an effect since PHP 8.0.0.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
A leading dollar in a quoted string can now be escaped: <literal>"\${"</literal> will now be
|
|
interpreted as a string with contents <literal>${</literal>.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Backslashes in double quoted strings are now more consistently treated as
|
|
escape characters. Previously, <literal>"foo\\"</literal> followed by
|
|
something other than a newline was not considered as a terminated string.
|
|
It is now interpreted as a string with contents <literal>foo\</literal>.
|
|
However, as an exception, the string <literal>"foo\"</literal>
|
|
followed by a newline will continue to be treated as a valid string with
|
|
contents <literal>foo\</literal> rather than an unterminated string.
|
|
This exception exists to support naive uses of Windows file paths such as
|
|
<literal>"C:\foo\"</literal>.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|