mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
initial translation of migration guide to 8.5
This commit is contained in:
55
appendices/migration85.xml
Normal file
55
appendices/migration85.xml
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: leonardolara Status: ready -->
|
||||
<appendix xml:id="migration85" xmlns="http://docbook.org/ns/docbook">
|
||||
<title>Migrando do PHP 8.4.x para o PHP 8.5.x</title>
|
||||
|
||||
<simpara>
|
||||
Esta nova versão menor traz várias
|
||||
<link linkend="migration85.new-features">novas funcionalidades</link> e
|
||||
<link linkend="migration85.incompatible">algumas incompatibilidades</link>
|
||||
que devem ser testadas antes de realizar a troca de versões do PHP em
|
||||
ambientes de produção.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
&manual.migration.seealso;
|
||||
<link linkend="migration71">7.1.x</link>,
|
||||
<link linkend="migration72">7.2.x</link>,
|
||||
<link linkend="migration73">7.3.x</link>,
|
||||
<link linkend="migration74">7.4.x</link>,
|
||||
<link linkend="migration80">8.0.x</link>,
|
||||
<link linkend="migration81">8.1.x</link>,
|
||||
<link linkend="migration82">8.2.x</link>.
|
||||
<link linkend="migration83">8.3.x</link>.
|
||||
<link linkend="migration84">8.4.x</link>.
|
||||
</simpara>
|
||||
|
||||
&appendices.migration85.new-features;
|
||||
&appendices.migration85.new-classes;
|
||||
&appendices.migration85.new-functions;
|
||||
&appendices.migration85.constants;
|
||||
&appendices.migration85.incompatible;
|
||||
&appendices.migration85.deprecated;
|
||||
&appendices.migration85.other-changes;
|
||||
&appendices.migration85.windows-support;
|
||||
|
||||
</appendix>
|
||||
<!-- 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
|
||||
-->
|
||||
190
appendices/migration85/constants.xml
Normal file
190
appendices/migration85/constants.xml
Normal file
@@ -0,0 +1,190 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: leonardolara Status: ready -->
|
||||
<sect1 xml:id="migration85.constants">
|
||||
<title>Novas Constantes Globais</title>
|
||||
|
||||
<sect2 xml:id="migration85.constants.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>PHP_BUILD_DATE</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>PHP_BUILD_PROVIDER</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>CURLINFO_USED_PROXY</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_HTTPAUTH_USED</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_PROXYAUTH_USED</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_CONN_ID</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLINFO_QUEUE_TIME_T</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLOPT_INFILESIZE_LARGE</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLFOLLOW_ALL</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLFOLLOW_OBEYCODE</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>CURLFOLLOW_FIRSTONLY</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.filter">
|
||||
<title>Filter</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>FILTER_THROW_ON_FAILURE</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>DECIMAL_COMPACT_SHORT</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>DECIMAL_COMPACT_LONG</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simplelist>
|
||||
<member><constant>OPENSSL_PKCS1_PSS_PADDING</constant></member>
|
||||
<member><constant>PKCS7_NOSMIMECAP</constant></member>
|
||||
<member><constant>PKCS7_CRLFEOL</constant></member>
|
||||
<member><constant>PKCS7_NOCRL</constant></member>
|
||||
<member><constant>PKCS7_NO_DUAL_CONTENT</constant></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simplelist>
|
||||
<member><constant>POSIX_SC_OPEN_MAX</constant></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>IPPROTO_ICMP</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>IPPROTO_ICMPV6</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_FUNCTION_BLK</constant> (somente FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_FUNCTION_ALIAS</constant> (somente FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA</constant> (somente FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA_NODOM</constant> (somente FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_REUSPORT_LB_NUMA_CURDOM</constant> (somente FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>TCP_BBR_ALGORITHM</constant> (somente FreeBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>AF_PACKET</constant> (somente Linux)
|
||||
</member>
|
||||
<member>
|
||||
<constant>IP_BINDANY</constant> (somente FreeBSD/NetBSD/OpenBSD)
|
||||
</member>
|
||||
<member>
|
||||
<constant>SO_BUSY_POLL</constant> (somente Linux)
|
||||
</member>
|
||||
<member>
|
||||
<constant>UDP_SEGMENT</constant> (somente Linux)
|
||||
</member>
|
||||
<member>
|
||||
<constant>SHUT_RD</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>SHUT_WR</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>SHUT_RDWR</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.tokenizer">
|
||||
<title>Tokenizer</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>T_VOID_CAST</constant>
|
||||
</member>
|
||||
<member>
|
||||
<constant>T_PIPE</constant>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.constants.standard">
|
||||
<title>Padrão</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<constant>IMAGETYPE_SVG</constant>
|
||||
quando a libxml estiver carregada.
|
||||
</member>
|
||||
</simplelist>
|
||||
</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
|
||||
-->
|
||||
523
appendices/migration85/deprecated.xml
Normal file
523
appendices/migration85/deprecated.xml
Normal file
@@ -0,0 +1,523 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: 2def8c3cfec11fcc74f153b337301bbc06c16bc9 Maintainer: leonardolara Status: ready -->
|
||||
<sect1 xml:id="migration85.deprecated">
|
||||
<title>Recursos Descontinuados</title>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.core">
|
||||
<title>Núcleo do PHP</title>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.changes-to-user-output-handler">
|
||||
<title>Alterações no manipulador de saída do usuário</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_4 -->
|
||||
|
||||
<simpara>
|
||||
Tentar gerar saída (por exemplo, com <function>echo</function>) dentro
|
||||
de um manipulador de saída do usuário foi descontinuado.
|
||||
O aviso de descontinuação ignorará o manipulador que gera a saída para
|
||||
garantir que ela seja visível; se houver manipuladores de saída aninhados, o próximo
|
||||
ainda será usado.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.non-canonical-cast-names">
|
||||
<title>Nomes de conversão não canônicos</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names -->
|
||||
|
||||
<simpara>
|
||||
Nomes de conversão não canônicos <literal>(boolean)</literal>,
|
||||
<literal>(integer)</literal>, <literal>(double)</literal>,
|
||||
e <literal>(binary)</literal> foram descontinuados,
|
||||
use <literal>(bool)</literal>, <literal>(int)</literal>,
|
||||
<literal>(float)</literal>,e <literal>(string)</literal> respectivamente.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.case-statements-with-semicolon">
|
||||
<title>Encerrando instruções 'case' com ponto e vírgula</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_semicolon_after_case_in_switch_statement -->
|
||||
|
||||
<simpara>
|
||||
O uso de ponto e vírgula em vez de dois pontos para encerrar
|
||||
instruções 'case' foi descontinuado.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.the-backtick-operator">
|
||||
<title>O operador de execução</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_backticks_as_an_alias_for_shell_exec -->
|
||||
|
||||
<simpara>
|
||||
<link linkend="language.operators.execution">O operador de execução</link>
|
||||
como um sinônimo de <function>shell_exec</function> foi descontinuado.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.return-null-from-debuginfo">
|
||||
<title>Retornando null de __debugInfo()</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_debuginfo_returning_null -->
|
||||
|
||||
<simpara>
|
||||
Retornar &null; de
|
||||
<link linkend="language.oop5.magic.debuginfo">__debugInfo()</link>
|
||||
foi descontinuado. Em vez disso, retorne um array vazio.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.return-memleaks-ini-directive">
|
||||
<title>Diretiva INI report_memleaks</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_report_memleaks_ini_directive -->
|
||||
|
||||
<simpara>
|
||||
A diretiva INI <link linkend="ini.report-memleaks">report_memleaks</link>
|
||||
foi descontinuada.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.constant-redeclaration">
|
||||
<title>Redeclaração de constante</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_constant_redeclaration -->
|
||||
|
||||
<simpara>
|
||||
A redeclaração de constante foi descontinuada.
|
||||
Observe que isso já gerava aviso e continuará gerando.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.closure-binding-issues">
|
||||
<title>Problemas de vinculação de Closure</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_closure_binding_issues -->
|
||||
|
||||
<para>
|
||||
Os seguintes problemas de vinculação de Closure, que já emitem um
|
||||
<constant>E_WARNING</constant>, agora estão descontinuados:
|
||||
|
||||
<simplelist>
|
||||
<member>Vincular uma instância a um Closure estático.</member>
|
||||
<member>Vincular métodos a objetos que não são instâncias da classe
|
||||
(ou subclasse) na qual o método está definido.</member>
|
||||
<member>Desvincular $this de um método.</member>
|
||||
<member>Desvincular `$this` de um Closure que usa `$this`.</member>
|
||||
<member>Vincular um Closure ao escopo de uma classe interna.</member>
|
||||
<member>Revincular o escopo de um Closure criado a partir de uma função ou método.</member>
|
||||
</simplelist>
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.sleep-and-wakeup-magic-methods">
|
||||
<title>Métodos mágicos __sleep() e __wakeup()</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_sleep_and_wakeup_magic_methods -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/soft-deprecate-sleep-wakeup -->
|
||||
|
||||
<simpara>
|
||||
Os métodos mágicos <link linkend="object.sleep">__sleep()</link> e
|
||||
<link linkend="object.wakeup">__wakeup()</link>
|
||||
foram praticamente descontinuados.
|
||||
Os métodos mágicos <link linkend="object.serialize">__serialize()</link> e
|
||||
<link linkend="object.unserialize">__unserialize()</link>
|
||||
devem ser usados no lugar deles, ou ao mesmo tempo se for requerida
|
||||
compatibilidade com o PHP 7.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.using-null-as-an-array-offset">
|
||||
<title>Usando null como um índice de array</title>
|
||||
<!-- 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>
|
||||
Usar &null; como um índice de array ou ao chamar <function>array_key_exists</function>
|
||||
agora foi descontinuado. Uma string vazia deve ser usada em seu lugar.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.incrementing-non-numeric-strings">
|
||||
<title>Incrementando strings não numéricas</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#enact_follow-up_phase_of_the_path_to_saner_incrementdecrement_operators_rfc -->
|
||||
|
||||
<simpara>
|
||||
Incrementar strings não numéricas agora foi descontinuado.
|
||||
Em vez disso, a função <function>str_increment</function> deve ser usada.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.deprecated.core.register-argc-argv-directive">
|
||||
<title>Diretiva INI register_argc_argv</title>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_register_argc_argv_ini_directive -->
|
||||
|
||||
<simpara>
|
||||
A obtenção de <code>$_SERVER['argc']</code> e <code>$_SERVER['argv']</code>
|
||||
a partir da string de consulta para SAPIs não-CLI foi descontinuada.
|
||||
Configure <literal>register_argc_argv=0</literal> e alterne para
|
||||
<varname>$_GET</varname> ou <code>$_SERVER['QUERY_STRING']</code>
|
||||
para acessar as informações, após verificar se o uso é seguro.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.curl">
|
||||
<title>cURL</title>
|
||||
|
||||
<simpara>
|
||||
A função <function>curl_close</function> foi descontinuada,
|
||||
pois os objetos <classname>CurlHandle</classname> são liberados automaticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_curl_close -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
A função <function>curl_share_close</function> foi descontinuada,
|
||||
pois os objetos <classname>CurlShareHandle</classname> são liberados automaticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_curl_share_close -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.date">
|
||||
<title>Date</title>
|
||||
|
||||
<simpara>
|
||||
As constantes <constant>DATE_RFC7231</constant> e
|
||||
<constant>DateTimeInterface::RFC7231</constant> foram descontinuadas.
|
||||
Isso ocorre porque o fuso horário associado é ignorado e sempre usa GMT.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_date_rfc7231_and_datetimeinterfacerfc7231 -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.fileinfo">
|
||||
<title>FileInfo</title>
|
||||
|
||||
<simpara>
|
||||
A função <function>finfo_close</function> foi descontinuada.
|
||||
Os objetos <classname>finfo</classname> são liberados automaticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_finfo_close -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
O parâmetro <parameter>$context</parameter> da
|
||||
função <function>finfo_buffer</function> foi descontinuado
|
||||
pois é ignorado.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_context_parameter_for_finfo_buffer -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.gd">
|
||||
<title>GD</title>
|
||||
|
||||
<simpara>
|
||||
A função <function>imagedestroy</function> foi descontinuada,
|
||||
pois os objetos <classname>GdImage</classname> são liberados automaticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_imagedestroy -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.hash">
|
||||
<title>Hash</title>
|
||||
|
||||
<simpara>
|
||||
As constantes <constant>MHASH_<replaceable>*</replaceable></constant> foram
|
||||
descontinuadas.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
A configuração INI <link linkend="ini.intl.error-level">intl.error_level</link>
|
||||
foi descontinuada.
|
||||
Os erros devem ser verificados manualmente ou as exceções devem ser habilitadas
|
||||
usando a configuração INI
|
||||
<link linkend="ini.intl.use-exceptions">intl.use_exceptions</link>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_intlerror_level_ini_setting -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.ldap">
|
||||
<title>LDAP</title>
|
||||
|
||||
<para>
|
||||
Chamadas e constantes específicas do Oracle Instant Client foram descontinuadas.
|
||||
|
||||
Lista de chamadas afetadas:
|
||||
<simplelist>
|
||||
<member><function>ldap_connect</function> com suporte para wallet</member>
|
||||
<member><function>ldap_connect_wallet</function></member>
|
||||
</simplelist>
|
||||
|
||||
Lista de constantes afetadas:
|
||||
<simplelist>
|
||||
<member><constant>GSLC_SSL_NO_UATH</constant></member>
|
||||
<member><constant>GSLC_SSL_ONEWAY_UATH</constant></member>
|
||||
<member><constant>GSLC_SSL_TWOWAY_UATH</constant></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_building_ext_ldap_against_oracle_ldap -->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.mysqli">
|
||||
<title>MySQLi</title>
|
||||
|
||||
<simpara>
|
||||
O sinônimo de função <function>mysqli_execute</function> foi descontinuado.
|
||||
Use <function>mysqli_stmt_execute</function> no lugar dela.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_mysqli_execute -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.openssl">
|
||||
<title>OpenSSL</title>
|
||||
|
||||
<simpara>
|
||||
O parâmetro <parameter>$key_length</parameter> da
|
||||
função <function>openssl_pkey_derive</function> foi descontinuado.
|
||||
Isso ocorre porque ele é ignorado ou trunca a chave, o que pode representar
|
||||
uma vulnerabilidade de segurança.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_key_length_parameter_of_openssl_pkey_derive -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.pdo">
|
||||
<title>PDO</title>
|
||||
|
||||
<simpara>
|
||||
O esquema DSN <literal>"uri:"</literal> foi descontinuado devido a preocupações de segurança com
|
||||
DSNs provenientes de URIs remotas.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_pdo_s_urischeme -->
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
Constantes específicas de drivers na classe PDO foram descontinuadas.
|
||||
Lista das constantes afetadas e suas substituições:
|
||||
|
||||
<simplelist>
|
||||
<member><constant>PDO::DBLIB_ATTR_CONNECTION_TIMEOUT</constant> => <constant>Pdo\Dblib::ATTR_CONNECTION_TIMEOUT</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_QUERY_TIMEOUT</constant> => <constant>Pdo\Dblib::ATTR_QUERY_TIMEOUT</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER</constant> => <constant>Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_VERSION</constant> => <constant>Pdo\Dblib::ATTR_VERSION</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_TDS_VERSION</constant> => <constant>Pdo\Dblib::ATTR_TDS_VERSION</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS</constant> => <constant>Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS</constant></member>
|
||||
<member><constant>PDO::DBLIB_ATTR_DATETIME_CONVERT</constant> => <constant>Pdo\Dblib::ATTR_DATETIME_CONVERT</constant></member>
|
||||
<member><constant>PDO::FB_ATTR_DATE_FORMAT</constant> => <constant>Pdo\Firebird::ATTR_DATE_FORMAT</constant></member>
|
||||
<member><constant>PDO::FB_ATTR_TIME_FORMAT</constant> => <constant>Pdo\Firebird::ATTR_TIME_FORMAT</constant></member>
|
||||
<member><constant>PDO::FB_ATTR_TIMESTAMP_FORMAT</constant> => <constant>Pdo\Firebird::ATTR_TIMESTAMP_FORMAT</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_USE_BUFFERED_QUERY</constant> => <constant>Pdo\Mysql::ATTR_USE_BUFFERED_QUERY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_LOCAL_INFILE</constant> => <constant>Pdo\Mysql::ATTR_LOCAL_INFILE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY</constant> => <constant>Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_INIT_COMMAND</constant> => <constant>Pdo\Mysql::ATTR_INIT_COMMAND</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_MAX_BUFFER_SIZE</constant> => <constant>Pdo\Mysql::ATTR_MAX_BUFFER_SIZE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_READ_DEFAULT_FILE</constant> => <constant>Pdo\Mysql::ATTR_READ_DEFAULT_FILE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_READ_DEFAULT_GROUP</constant> => <constant>Pdo\Mysql::ATTR_READ_DEFAULT_GROUP</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_COMPRESS</constant> => <constant>Pdo\Mysql::ATTR_COMPRESS</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_DIRECT_QUERY</constant> => <constant>Pdo\Mysql::ATTR_DIRECT_QUERY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_FOUND_ROWS</constant> => <constant>Pdo\Mysql::ATTR_FOUND_ROWS</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_IGNORE_SPACE</constant> => <constant>Pdo\Mysql::ATTR_IGNORE_SPACE</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_KEY</constant> => <constant>Pdo\Mysql::ATTR_SSL_KEY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CERT</constant> => <constant>Pdo\Mysql::ATTR_SSL_CERT</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CA</constant> => <constant>Pdo\Mysql::ATTR_SSL_CA</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CAPATH</constant> => <constant>Pdo\Mysql::ATTR_SSL_CAPATH</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_CIPHER</constant> => <constant>Pdo\Mysql::ATTR_SSL_CIPHER</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT</constant> => <constant>Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY</constant> => <constant>Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY</constant></member>
|
||||
<member><constant>PDO::MYSQL_ATTR_MULTI_STATEMENTS</constant> => <constant>Pdo\Mysql::ATTR_MULTI_STATEMENTS</constant></member>
|
||||
<member><constant>PDO::ODBC_ATTR_USE_CURSOR_LIBRARY</constant> => <constant>Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY</constant></member>
|
||||
<member><constant>PDO::ODBC_ATTR_ASSUME_UTF8</constant> => <constant>Pdo\Odbc::ATTR_ASSUME_UTF8</constant></member>
|
||||
<member><constant>PDO::ODBC_SQL_USE_IF_NEEDED</constant> => <constant>Pdo\Odbc::SQL_USE_IF_NEEDED</constant></member>
|
||||
<member><constant>PDO::ODBC_SQL_USE_DRIVER</constant> => <constant>Pdo\Odbc::SQL_USE_DRIVER</constant></member>
|
||||
<member><constant>PDO::ODBC_SQL_USE_ODBC</constant> => <constant>Pdo\Odbc::SQL_USE_ODBC</constant></member>
|
||||
<member><constant>PDO::PGSQL_ATTR_DISABLE_PREPARES</constant> => <constant>Pdo\Pgsql::ATTR_DISABLE_PREPARES</constant></member>
|
||||
<member><constant>PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES</constant> => <constant>Pdo\Sqlite::ATTR_EXTENDED_RESULT_CODES</constant></member>
|
||||
<member><constant>PDO::SQLITE_ATTR_OPEN_FLAGS</constant> => <constant>Pdo\Sqlite::OPEN_FLAGS</constant></member>
|
||||
<member><constant>PDO::SQLITE_ATTR_READONLY_STATEMENT</constant> => <constant>Pdo\Sqlite::ATTR_READONLY_STATEMENT</constant></member>
|
||||
<member><constant>PDO::SQLITE_DETERMINISTIC</constant> => <constant>Pdo\Sqlite::DETERMINISTIC</constant></member>
|
||||
<member><constant>PDO::SQLITE_OPEN_READONLY</constant> => <constant>Pdo\Sqlite::OPEN_READONLY</constant></member>
|
||||
<member><constant>PDO::SQLITE_OPEN_READWRITE</constant> => <constant>Pdo\Sqlite::OPEN_READWRITE</constant></member>
|
||||
<member><constant>PDO::SQLITE_OPEN_CREATE</constant> => <constant>Pdo\Sqlite::OPEN_CREATE</constant></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_building_ext_ldap_against_oracle_ldap -->
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Métodos específicos de drivers na classe PDO foram descontinuados.
|
||||
Lista dos métodos afetados e suas substituições:
|
||||
|
||||
<simplelist>
|
||||
<member><methodname>PDO::pgsqlCopyFromArray</methodname> => <methodname>Pdo\Pgsql::copyFromArray</methodname></member>
|
||||
<member><methodname>PDO::pgsqlCopyFromFile</methodname> => <methodname>Pdo\Pgsql::copyFromFile</methodname></member>
|
||||
<member><methodname>PDO::pgsqlCopyToArray</methodname> => <methodname>Pdo\Pgsql::copyToArray</methodname></member>
|
||||
<member><methodname>PDO::pgsqlCopyToFile</methodname> => <methodname>Pdo\Pgsql::copyToFile</methodname></member>
|
||||
<member><methodname>PDO::pgsqlGetNotify</methodname> => <methodname>Pdo\Pgsql::getNotify</methodname></member>
|
||||
<member><methodname>PDO::pgsqlGetPid</methodname> => <methodname>Pdo\Pgsql::getPid</methodname></member>
|
||||
<member><methodname>PDO::pgsqlLOBCreate</methodname> => <methodname>Pdo\Pgsql::lobCreate</methodname></member>
|
||||
<member><methodname>PDO::pgsqlLOBOpen</methodname> => <methodname>Pdo\Pgsql::lobOpen</methodname></member>
|
||||
<member><methodname>PDO::pgsqlLOBUnlink</methodname> => <methodname>Pdo\Pgsql::lobUnlink</methodname></member>
|
||||
<member><methodname>PDO::sqliteCreateAggregate</methodname> => <methodname>Pdo\Sqlite::createAggregate</methodname></member>
|
||||
<member><methodname>PDO::sqliteCreateCollation</methodname> => <methodname>Pdo\Sqlite::createCollation</methodname></member>
|
||||
<member><methodname>PDO::sqliteCreateFunction</methodname> => <methodname>Pdo\Sqlite::createFunction</methodname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_driver_specific_pdo_constants_and_methods -->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.pdo-pgsql">
|
||||
<title>PDO_PGSQL</title>
|
||||
|
||||
<para>
|
||||
As constantes relacionadas aos estados de transação foram descontinuadas, pois esse recurso não está disponível no PDO:
|
||||
|
||||
<simplelist>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_IDLE</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_ACTIVE</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_INTRANS</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_INERROR</constant></member>
|
||||
<member><constant>PDO::PGSQL_TRANSACTION_UNKNOWN</constant></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#extpdo_deprecations -->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
Os métodos <code>setAccessible()</code> de vários objetos Reflection foram
|
||||
descontinuados, pois não têm mais efeito.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionsetaccessible -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Chamar <methodname>ReflectionClass::getConstant</methodname> para constantes
|
||||
que não existem foi descontinuado.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionclassgetconstant_for_missing_constants -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Chamar <methodname>ReflectionProperty::getDefaultValue</methodname> para
|
||||
propriedades sem valores padrão foi descontinuado.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionpropertygetdefaultvalue_for_properties_without_default_values -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.spl">
|
||||
<title>SPL</title>
|
||||
|
||||
<simpara>
|
||||
O processo de cancelar o registro de todos os autocarregadores passando a
|
||||
função <function>spl_autoload_call</function> como argumento de retorno para
|
||||
<function>spl_autoload_unregister</function> foi descontinuado.
|
||||
Em vez disso, se necessário, deve-se iterar sobre o valor de retorno de
|
||||
<function>spl_autoload_functions</function> e chamar
|
||||
<function>spl_autoload_unregister</function> em cada valor.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_spl_autoload_call_to_spl_autoload_unregister -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Os métodos <methodname>SplObjectStorage::contains</methodname>,
|
||||
<methodname>SplObjectStorage::attach</methodname> e
|
||||
<methodname>SplObjectStorage::detach</methodname> foram descontinuados
|
||||
em favor de <methodname>SplObjectStorage::offsetExists</methodname>,
|
||||
<methodname>SplObjectStorage::offsetSet</methodname> e
|
||||
<methodname>SplObjectStorage::offsetUnset</methodname> respectivamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_splobjectstoragecontains_splobjectstorageattach_and_splobjectstoragedetach -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Usar <classname>ArrayObject</classname> e
|
||||
<classname>ArrayIterator</classname> com objetos foi descontinuado.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_arrayobject_and_arrayiterator_with_objects -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.standard">
|
||||
<title>Standard</title>
|
||||
|
||||
<simpara>
|
||||
A função sinônimo <function>socket_set_timeout</function> foi descontinuada.
|
||||
Use <function>stream_set_timeout</function> em seu lugar.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#formally_deprecate_socket_set_timeout -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Passar &null; para <function>readdir</function>,
|
||||
<function>rewinddir</function> e <function>closedir</function>
|
||||
para usar o último diretório aberto foi descontinuado.
|
||||
Em vez disso, forneça o último diretório aberto explicitamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_null_to_readdir_rewinddir_and_closedir -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Passar inteiros fora do intervalo <literal>[0, 255]</literal> para <function>chr</function>
|
||||
agora foi descontinuado.
|
||||
Isso ocorre porque um byte só pode armazenar um valor dentro desse intervalo.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_integers_outside_the_interval_0_255_to_chr -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Passar uma string que não seja um único byte para <function>ord</function>
|
||||
agora foi descontinuado, isso indica um bug.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_string_which_are_not_one_byte_long_to_ord -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
A variável predefinida localmente
|
||||
<link linkend="reserved.variables.httpresponseheader">$http_response_header</link>
|
||||
foi descontinuada. Em vez disso, deve-se chamar a função
|
||||
<function>http_get_last_response_headers</function>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_http_response_header_predefined_variable -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.deprecated.xml">
|
||||
<title>XML</title>
|
||||
|
||||
<simpara>
|
||||
A função <function>xml_parser_free</function> foi descontinuada,
|
||||
pois os objetos <classname>XMLParser</classname> são liberados automaticamente.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_xml_parser_free -->
|
||||
</simpara>
|
||||
|
||||
</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
|
||||
-->
|
||||
587
appendices/migration85/incompatible.xml
Normal file
587
appendices/migration85/incompatible.xml
Normal file
@@ -0,0 +1,587 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: leonardolara Status: ready -->
|
||||
<sect1 xml:id="migration85.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Alterações Incompatíveis com Versões Anteriores</title>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.core">
|
||||
<title>Núcleo do PHP</title>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.array-callable-alias">
|
||||
<title>Sinônimos <literal>"array"</literal> e <literal>"callable"</literal></title>
|
||||
|
||||
<simpara>
|
||||
Não é mais possível usar <literal>"array"</literal>
|
||||
e <literal>"callable"</literal> como sinônimos de nomes de classe
|
||||
em <function>class_alias</function>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.loosely-comparing-object">
|
||||
<title>Comparação livre de objetos incomparáveis</title>
|
||||
|
||||
<simpara>
|
||||
A comparação livre de objetos incomparáveis (por exemplo, enumerações,
|
||||
<classname>CurlHandle</classname> e outras classes internas) com booleanos
|
||||
era inconsistente anteriormente. Se comparado a um booleano literal
|
||||
<code>$object == true</code>, se comportaria da mesma forma que
|
||||
<code>(bool)$object</code>. Se comparado a um valor estaticamente desconhecido
|
||||
<code>$object == $true</code>, sempre retornaria &false;.
|
||||
Este comportamento foi consolidado para sempre seguir o de
|
||||
<code>(bool)$object</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.gc-collect-cycles">
|
||||
<title>Valor de retorno de gc_collect_cycles()</title>
|
||||
|
||||
<simpara>
|
||||
O valor de retorno de <function>gc_collect_cycles</function> não mais inclui
|
||||
strings e recursos que foram indiretamente coletados através dos ciclos.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.substitute-final-subclasses">
|
||||
<title>Substituição da palavra-chave 'static' em subclasses finais</title>
|
||||
|
||||
<simpara>
|
||||
Agora é permitido substituir <type>static</type> por <type>self</type> ou pelo nome concreto da classe
|
||||
em subclasses finais.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.tick-handlers">
|
||||
<title>Manipuladores de tiques</title>
|
||||
|
||||
<simpara>
|
||||
Os manipuladores de tiques agora são desativados após todas as funções de desligamento
|
||||
e destrutores terem sido executadas e os manipuladores de saída terem sido limpos.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.trait-binding">
|
||||
<title>Vinculação de Traits</title>
|
||||
|
||||
<simpara>
|
||||
Traits agora são vinculados antes da classe superior. Esta é uma alteração comportamental
|
||||
sutil mas deve corresponder de forma mais precisa às expectativas do usuário.
|
||||
<!-- https://github.com/php/php-src/pull/15878 -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.errors-compilation-and-linking">
|
||||
<title>Erros durante a compilação e à vinculação de classes</title>
|
||||
|
||||
<simpara>
|
||||
Os erros emitidos durante a compilação e a vinculação de classes agora são sempre atrasados
|
||||
e tratados após a compilação ou a vinculação de classes. Erros fatais emitidos durante
|
||||
a compilação ou a vinculação de classes fazem com que quaisquer erros atrasados sejam tratados
|
||||
imediatamente, sem chamar manipuladores de erros definidos pelo usuário.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.exception-by-userdefined-handler">
|
||||
<title>Exceções lançadas pelo manipulador de erros definido pelo usuário</title>
|
||||
|
||||
<simpara>
|
||||
Exceções lançadas por manipuladores de erros definidos pelo usuário ao lidar com a vinculação de classes
|
||||
Erros não são mais promovidos a erros fatais e não impedem a vinculação.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.attribute-during-compilation">
|
||||
<title>Erro de aplicação de atributo durante a compilação</title>
|
||||
|
||||
<simpara>
|
||||
Aplicar <code>#[\Attribute]</code> a uma classe abstrata, enumeração, interface ou trait
|
||||
gera um erro durante a compilação. Anteriormente, o atributo podia ser
|
||||
adicionado, mas quando <methodname>ReflectionAttribute::newInstance</methodname>
|
||||
era chamado, um erro era lançado.
|
||||
O erro pode ser adiado da compilação para o momento de execução usando o novo
|
||||
atributo <code>#[\DelayedTargetValidation]</code>.
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.disable-ini-setting">
|
||||
<title>Configuração INI disable_classes</title>
|
||||
|
||||
<simpara>
|
||||
A configuração INI <link linkend="ini.disable-classes">disable_classes</link>
|
||||
foi removida porque faz com que várias premissas do mecanismo sejam quebradas.
|
||||
<!-- RFC: https://wiki.php.net/rfc/deprecations_php_8_5#remove_disable_classes_ini_setting -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.destruct-non-array-values">
|
||||
<title>Destruindo valores não-array</title>
|
||||
|
||||
<simpara>
|
||||
Destruir valores não-array (diferentes de &null;) usando <literal>[]</literal> ou <function>list</function> agora
|
||||
emite um alerta.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#destructuring_non-array_values -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 xml:id="migration85.incompatible.core.warning-related-to-cast">
|
||||
<title>Avisos relacionados à conversão</title>
|
||||
|
||||
<simpara>
|
||||
Agora, um aviso é emitido ao converter floats (ou strings que se parecem com
|
||||
floats) para inteiros se eles não puderem ser representados como um. Isso afeta conversões explícitas
|
||||
implícitas para inteiro.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#casting_out_of_range_floats_to_int -->
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Agora, um aviso é emitido ao converter NAN para outros tipos.
|
||||
<!-- RFC: https://wiki.php.net/rfc/warnings-php-8-5#coercing_nan_to_other_types -->
|
||||
</simpara>
|
||||
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.bzip2">
|
||||
<title>Bzip2</title>
|
||||
|
||||
<simpara>
|
||||
<function>bzcompress</function> agora lança um <classname>ValueError</classname>
|
||||
quando <parameter>$block_size</parameter> não estiver entre 1 e 9.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>bzcompress</function> agora lança um <classname>ValueError</classname>
|
||||
quando <parameter>$work_factor</parameter> não estiver entre 0 e 250.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.dom">
|
||||
<title>DOM</title>
|
||||
|
||||
<simpara>
|
||||
Clonar um <classname>DOMNamedNodeMap</classname>,
|
||||
<classname>DOMNodeList</classname>, <classname>Dom\NamedNodeMap</classname>,
|
||||
<classname>Dom\NodeList</classname>, <classname>Dom\HTMLCollection</classname>,
|
||||
e <classname>Dom\DtdNamedNodeMap</classname> agora falha.
|
||||
Isto nunca realmente resultou em um objeto funcional, portanto nenhum impacto é esperado.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.fileinfo">
|
||||
<title>FileInfo</title>
|
||||
|
||||
<simpara>
|
||||
<function>finfo_file</function> e <methodname>finfo::file</methodname>
|
||||
agora lançam um <exceptionname>ValueError</exceptionname> em vez de um
|
||||
<exceptionname>TypeError</exceptionname> quando <parameter>$filename</parameter>
|
||||
contiver bytes NUL.
|
||||
Isso alinha o tipo de erro lançado para ser consistente com o restante da
|
||||
linguagem.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.intl">
|
||||
<title>Intl</title>
|
||||
|
||||
<simpara>
|
||||
A extensão agora requer pelo menos a ICU 57.1.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>IntlDateFormatter::setTimeZone</methodname>/<function>datefmt_set_timezone</function>
|
||||
agora lança um <exceptionname>IntlException</exceptionname> nas falhas de classes ou
|
||||
clones sem inicialização.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Todos os métodos de <classname>Locale</classname> agora lançam um
|
||||
<exceptionname>ValueError</exceptionname> quando o argumento de localidade contiver bytes NUL.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
O comportamento de <constant>Collator::SORT_REGULAR</constant> em relação
|
||||
à manipulação de strings numéricas agora é alinhado com o comportamento de
|
||||
<constant>SORT_REGULAR</constant> na extensão padrão.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.ldap">
|
||||
<title>LDAP</title>
|
||||
|
||||
<simpara>
|
||||
<function>ldap_get_option</function> e <function>ldap_set_option</function>
|
||||
agora lançam um <exceptionname>ValueError</exceptionname> quando uma opção inválida é passada.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.mbstring">
|
||||
<title>MBString</title>
|
||||
|
||||
<simpara>
|
||||
As tabelas de dados do Unicode foram atualizadas para Unicode 17.0.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.mysqli">
|
||||
<title>MySQLi</title>
|
||||
|
||||
<simpara>
|
||||
Chamar o construtor mysqli em um objeto já construído
|
||||
não é mais possível e lança um <exceptionname>Error</exceptionname>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.odbc">
|
||||
<title>ODBC</title>
|
||||
|
||||
<simpara>
|
||||
O ODBC agora pressupõe que pelo menos a funcionalidade ODBC 3.5 esteja disponível.
|
||||
A definição ODBCVER e os sinalizadores do sistema de compilação para controlá-la foram removidos.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
O ODBC não possui mais opções de compilação para compilar com drivers específicos (exceto
|
||||
para DB2) e remove casos especiais para esses drivers. É altamente
|
||||
recomendado o uso de um gerenciador de drivers como o iODBC ou o unixODBC em sistemas não Windows.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simpara>
|
||||
A extensão Opcache agora está sempre integrada ao binário do PHP e está sempre
|
||||
carregada.
|
||||
As diretivas INI <link linkend="ini.opcache.enable">opcache.enable</link>
|
||||
e <link linkend="ini.opcache.enable-cli">opcache.enable_cli</link> ainda são
|
||||
respeitadas.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
As opções de configuração <option role="configure">--enable-opcache</option>/<option role="configure">--disable-opcache</option>
|
||||
foram removidas e a compilação não produz mais os objetos <filename>opcache.so</filename>
|
||||
ou <filename>php_opcache.dll</filename>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
O uso de diretivas INI <literal>zend_extension=opcache.so</literal> ou
|
||||
<literal>zend_extension=php_opcache.dll</literal>
|
||||
emitirá um aviso.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pcntl">
|
||||
<title>PCNTL</title>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> agora lança um <exceptionname>ValueError</exceptionname>
|
||||
quando as entradas do parâmetro <parameter>$args</parameter> contiver bytes NUL.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>pcntl_exec</function> agora lança um <exceptionname>ValueError</exceptionname>
|
||||
quando as entradas ou chaves do parâmetro <parameter>$env_vars</parameter>
|
||||
contiver bytes NUL.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pcre">
|
||||
<title>PCRE</title>
|
||||
|
||||
<simpara>
|
||||
A extensão foi compilada sem a opção de compilação semi-obsoleta
|
||||
PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK.
|
||||
<!-- https://github.com/PCRE2Project/pcre2/issues/736#issuecomment-2754024651 -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo">
|
||||
<title>PDO</title>
|
||||
|
||||
<simpara>
|
||||
Os argumentos do construtor definidos em conjunto com
|
||||
<constant>PDO::FETCH_CLASS</constant> agora seguem a semântica usual do CUFA
|
||||
(<function>call_user_func_array</function>).
|
||||
Isso significa que as chaves de string se comportarão como um argumento nomeado.
|
||||
Além disso, o encapsulamento automático para argumentos por valor passados para um parâmetro por referência
|
||||
foi removido, e o aviso usual <constant>E_WARNING</constant>
|
||||
sobre isso agora é emitido.
|
||||
Para passar uma variável por referência para um argumento do construtor, use a atribuição geral
|
||||
de referência de valor de array: <code>$ctor_args = [&$valByRef]</code>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Tentar chamar <methodname>PDOStatement::setFetchMode</methodname> durante
|
||||
uma chamada para <methodname>PDO::fetch</methodname>,
|
||||
<methodname>PDO::fetchObject</methodname>,
|
||||
<methodname>PDO::fetchAll</methodname>, por exemplo, usando truques como
|
||||
passar o objeto de instrução como um argumento do construtor ao buscar em um
|
||||
objeto, agora lançará um <exceptionname>Error</exceptionname>.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Os valores das constantes <constant>PDO::FETCH_GROUP</constant>,
|
||||
<constant>PDO::FETCH_UNIQUE</constant>,
|
||||
<constant>PDO::FETCH_CLASSTYPE</constant>,
|
||||
<constant>PDO::FETCH_PROPS_LATE</constant> e
|
||||
<constant>PDO::FETCH_SERIALIZE</constant> foram alterados.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Agora, uma exceção <exceptionname>ValueError</exceptionname> é lançada se
|
||||
<constant>PDO::FETCH_PROPS_LATE</constant> for usado com um modo de busca
|
||||
diferente de <constant>PDO::FETCH_CLASS</constant>, consistente com
|
||||
outras opções de busca.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
Agora, uma exceção <exceptionname>ValueError</exceptionname> é lançada se
|
||||
<constant>PDO::FETCH_INTO</constant> for usada como modo de busca em
|
||||
<methodname>PDO::fetchAll</methodname>,
|
||||
similar a <constant>PDO::FETCH_LAZY</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo-firebird">
|
||||
<title>PDO_FIREBIRD</title>
|
||||
|
||||
<simpara>
|
||||
Agora, um <exceptionname>ValueError</exceptionname> é lançado ao tentar definir um cursor
|
||||
com um nome muito longo em um <classname>PDOStatement</classname> resultante do
|
||||
driver Firebird.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.pdo-sqlite">
|
||||
<title>PDO_SQLITE</title>
|
||||
|
||||
<simpara>
|
||||
O SQLite <methodname>PDO::quote</methodname> agora lançará uma exceção
|
||||
ou emitirá um aviso, dependendo do modo de erro, se a string contiver
|
||||
um byte nulo.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<methodname>PDO::sqliteCreateCollation</methodname> agora lançará uma
|
||||
exceção se a função de retorno tiver o tipo de retorno errado, tornando-o mais
|
||||
alinhado com o comportamento de <methodname>Pdo\Sqlite::createCollation</methodname>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.posix">
|
||||
<title>POSIX</title>
|
||||
|
||||
<simpara>
|
||||
<function>posix_kill</function> agora lança um
|
||||
<exceptionname>ValueError</exceptionname> quando o argumento process_id é
|
||||
menor ou maior do que o suportado pela plataforma (intervalo de inteiro com sinal
|
||||
ou de longo), <function>posix_setpgid</function> agora lança um
|
||||
<exceptionname>ValueError</exceptionname> quando o process_id ou
|
||||
o process_group_id é menor que zero ou maior do que o suportado pela
|
||||
plataforma.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>posix_setrlimit</function> agora lança um
|
||||
<exceptionname>ValueError</exceptionname> quando os argumentos hard_limit ou
|
||||
soft_limit forem menores que -1 ou se soft_limit for maior que
|
||||
hard_limit.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>ReflectionAttribute::newInstance</methodname> agora pode lançar
|
||||
erros para atributos internos se o atributo foi aplicado em um alvo inválido
|
||||
e o erro foi atrasado do tempo de compilação para o tempo de execução por meio do atributo
|
||||
#[\DelayedTargetValidation].
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.session">
|
||||
<title>Session</title>
|
||||
|
||||
<simpara>
|
||||
A tentativa de gravar dados de sessão onde <varname>$_SESSION</varname> tem uma chave
|
||||
contendo o caractere pipe (<literal>|</literal>) agora emitirá um aviso
|
||||
em vez de falhar silenciosamente.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>session_start</function> é mais rigorosa em relação ao argumento 'options'.
|
||||
Agora, ela lança um <exceptionname>ValueError</exceptionname> se
|
||||
o array não for um hashmap, ou um <exceptionname>TypeError</exceptionname>
|
||||
se o valor read_and_close não for um tipo válido compatível com int.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.simplexml">
|
||||
<title>SimpleXML</title>
|
||||
|
||||
<simpara>
|
||||
Passar uma expressão XPath que retorna algo diferente de um conjunto de nós
|
||||
para <methodname>SimpleXMLElement::xpath</methodname> agora emitirá um aviso
|
||||
e retornará &false;, em vez de falhar silenciosamente e retornar um array vazio.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.snmp">
|
||||
<title>SNMP</title>
|
||||
|
||||
<simpara>
|
||||
<function>snmpget</function>,
|
||||
<function>snmpset</function>,
|
||||
<function>snmp2_get</function>,
|
||||
<function>snmp2_set</function>,
|
||||
<function>snmp3_get</function>,
|
||||
<function>snmp3_set</function>
|
||||
e <methodname>SNMP::__construct</methodname> lançam um
|
||||
<exceptionname>ValueError</exceptionname> quando o nome do host
|
||||
é muito grande, contém algum byte nulo ou se a porta fornecida
|
||||
for negativa ou maior que 65535, os valores de tempo limite e tentativas
|
||||
são menores que -1 ou muito grandes.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.soap">
|
||||
<title>SOAP</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>SoapClient::__doRequest</methodname> agora aceita um novo parâmetro
|
||||
opcional <parameter>$uriParserClass</parameter> que aceita
|
||||
argumentos de string ou &null;.
|
||||
&null; representa o método original baseado em (<function>parse_url</function>),
|
||||
enquanto os novos backends serão usados ao passar
|
||||
<classname>Uri\Rfc3986\Uri</classname> ou <classname>Uri\WhatWg\Url</classname>.
|
||||
<!-- RFC: https://wiki.php.net/rfc/url_parsing_api#plugability -->
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.sockets">
|
||||
<title>Sockets</title>
|
||||
|
||||
<simpara>
|
||||
<function>socket_create_listen</function>,
|
||||
<function>socket_bind</function> e <function>socket_sendto</function>
|
||||
agora lançam um <exceptionname>ValueError</exceptionname> se a porta for menor
|
||||
que 0 ou maior que 65535, e também se alguma das entradas da matriz hints for
|
||||
indexada numericamente.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_addrinfo_lookup</function> agora lança um
|
||||
<exceptionname>TypeError</exceptionname> se algum dos valores de dicas não puder
|
||||
ser convertido para inteiro e pode lançar um <exceptionname>ValueError</exceptionname> se
|
||||
algum desses valores estourar.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_set_option</function> com as opções
|
||||
<constant>MCAST_LEAVE_GROUP</constant>/<constant>MCAST_LEAVE_SOURCE_GROUP</constant>
|
||||
agora lança uma exceção se o valor não for um objeto ou um array válido.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<function>socket_set_option</function> com contexto multicast agora lança um
|
||||
<exceptionname>ValueError</exceptionname> quando o socket criado não é da família
|
||||
<constant>AF_INET</constant>/<constant>AF_INET6</constant>.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.spl">
|
||||
<title>SPL</title>
|
||||
|
||||
<simpara>
|
||||
<classname>ArrayObject</classname> não aceita mais enumerações, pois modificar as propriedades
|
||||
<property>$name</property> ou <property>$value</property> pode quebrar
|
||||
as premissas do mecanismo.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
O parâmetro de <methodname>SplFileObject::fwrite</methodname>
|
||||
<parameter>$length</parameter> agora aceita valores nulos.
|
||||
O valor padrão foi alterado de <literal>0</literal> para &null;.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.standard">
|
||||
<title>Standard</title>
|
||||
|
||||
<simpara>
|
||||
O uso de uma função da família printf com um formatador que não especificava a
|
||||
precisão anteriormente redefinia incorretamente a precisão em vez de tratá-la
|
||||
como uma precisão de 0.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.incompatible.tidy">
|
||||
<title>Tidy</title>
|
||||
|
||||
<simpara>
|
||||
<methodname>tidy::__construct</methodname>,
|
||||
<methodname>tidy::parseFile</methodname>,
|
||||
<methodname>tidy::parseString</methodname> agora lançam um
|
||||
<exceptionname>ValueError</exceptionname> se a configuração contiver um
|
||||
valor inválido ou tentar definir uma entrada interna somente leitura,
|
||||
e um <exceptionname>TypeError</exceptionname> se uma chave de configuração não for uma
|
||||
string.
|
||||
</simpara>
|
||||
|
||||
</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
|
||||
-->
|
||||
67
appendices/migration85/new-classes.xml
Normal file
67
appendices/migration85/new-classes.xml
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: leonardolara Status: ready -->
|
||||
<sect1 xml:id="migration85.new-classes" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Novas Classes e Interfaces</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.core">
|
||||
<title>Núcleo</title>
|
||||
<simplelist>
|
||||
<member><classname>NoDiscard</classname></member>
|
||||
<member><classname>DelayedTargetValidation</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/marking_return_value_as_important -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/delayedtargetvalidation_attribute -->
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.curl">
|
||||
<title>Curl</title>
|
||||
<simplelist>
|
||||
<member><classname>CurlSharePersistentHandle</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement -->
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.filter">
|
||||
<title>Filter</title>
|
||||
<simplelist>
|
||||
<member><classname>Filter\FilterException</classname></member>
|
||||
<member><classname>Filter\FilterFailedException</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/filter_throw_on_failure -->
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-classes.uri">
|
||||
<title>URI</title>
|
||||
<simplelist>
|
||||
<member><classname>Uri\UriException</classname></member>
|
||||
<member><classname>Uri\InvalidUriException</classname></member>
|
||||
<member><classname>Uri\UriComparisonMode</classname></member>
|
||||
<member><classname>Uri\Rfc3986\Uri</classname></member>
|
||||
<member><classname>Uri\WhatWg\InvalidUrlException</classname></member>
|
||||
<member><classname>Uri\WhatWg\UrlValidationErrorType</classname></member>
|
||||
<member><classname>Uri\WhatWg\UrlValidationError</classname></member>
|
||||
<member><classname>Uri\WhatWg\Url</classname></member>
|
||||
</simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/url_parsing_api -->
|
||||
</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
|
||||
-->
|
||||
150
appendices/migration85/new-functions.xml
Normal file
150
appendices/migration85/new-functions.xml
Normal file
@@ -0,0 +1,150 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: leonardolara Status: ready -->
|
||||
<sect1 xml:id="migration85.new-functions">
|
||||
<title>Novas Funções</title>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/get-error-exception-handler -->
|
||||
<!-- RFC: https://wiki.php.net/rfc/get-error-exception-handler -->
|
||||
<member><function>get_error_handler</function></member>
|
||||
<member><function>get_exception_handler</function></member>
|
||||
<member>
|
||||
<methodname>Closure::getCurrent</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.curl">
|
||||
<title>Curl</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement -->
|
||||
<member><function>curl_multi_get_handles</function></member>
|
||||
<member><function>curl_share_init_persistent</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.dom">
|
||||
<title>DOM</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Dom\Element::getElementsByClassName</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>Dom\Element::insertAdjacentHTML</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.enchant">
|
||||
<title>Enchant</title>
|
||||
<simplelist>
|
||||
<member><function>enchant_dict_remove_from_session</function></member>
|
||||
<member><function>enchant_dict_remove</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.intl">
|
||||
<title>Intl</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Locale::isRightToLeft</methodname>
|
||||
</member>
|
||||
<member><function>locale_is_right_to_left</function></member>
|
||||
<!-- RFC: https://wiki.php.net/rfc/grapheme_levenshtein -->
|
||||
<member><function>grapheme_levenshtein</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.opcache">
|
||||
<title>Opcache</title>
|
||||
|
||||
<simplelist>
|
||||
<member><function>opcache_is_script_cached_in_file_cache</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.pdo-sqlite">
|
||||
<title>PDO_SQLITE</title>
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Pdo\Sqlite::setAuthorizer</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.pgsql">
|
||||
<title>PGSQL</title>
|
||||
|
||||
<simplelist>
|
||||
<member><function>pg_close_stmt</function></member>
|
||||
<member><function>pg_service</function></member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.reflection">
|
||||
<title>Reflection</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getFileName</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getExtension</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getExtensionName</methodname>
|
||||
</member>
|
||||
<!-- RFC: https://wiki.php.net/rfc/attributes-on-constants -->
|
||||
<member>
|
||||
<methodname>ReflectionConstant::getAttributes</methodname>
|
||||
</member>
|
||||
<member>
|
||||
<methodname>ReflectionProperty::getMangledName</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.sqlite">
|
||||
<title>Sqlite</title>
|
||||
|
||||
<simplelist>
|
||||
<member>
|
||||
<methodname>Sqlite3Stmt::busy</methodname>
|
||||
</member>
|
||||
</simplelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.new-functions.standard">
|
||||
<title>Standard</title>
|
||||
|
||||
<simplelist>
|
||||
<!-- RFC: https://wiki.php.net/rfc/array_first_last -->
|
||||
<member><function>array_first</function></member>
|
||||
<member><function>array_last</function></member>
|
||||
</simplelist>
|
||||
</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
|
||||
-->
|
||||
93
appendices/migration85/windows-support.xml
Normal file
93
appendices/migration85/windows-support.xml
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: leonardolara Status: ready -->
|
||||
<sect1 xml:id="migration85.windows-support">
|
||||
<title>Suporte ao Windows</title>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.core">
|
||||
<title>Núcleo</title>
|
||||
|
||||
<simpara>
|
||||
As variáveis de configuração <constant>PHP_VERSION</constant>,
|
||||
<constant>PHP_MINOR_VERSION</constant> e
|
||||
<constant>PHP_RELEASE_VERSION</constant> agora são sempre números.
|
||||
Anteriormente, elas eram strings para compilações do buildconf.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
As compilações do <command>phpize</command> agora refletem a árvore de origem no
|
||||
diretório de compilação (como já funcionava para compilações dentro da árvore); algumas compilações de extensão
|
||||
(especialmente ao usar Makefile.frag.w32) podem precisar de ajustes.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
<option role="configure">--enable-sanitizer</option> agora é compatível
|
||||
com compilações do MSVC. Isso habilita as asserções ASan e de depuração e é compatível
|
||||
a partir do MSVC 16.10 e do Windows 10.
|
||||
</simpara>
|
||||
|
||||
<simpara>
|
||||
A opção de configuração <option role="configure">--with-uncritical-warn-choke</option>
|
||||
para compilações do clang não é mais suportada.
|
||||
Em vez disso, selecione os avisos a serem suprimidos por meio de CFLAGS.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.com">
|
||||
<title>COM</title>
|
||||
|
||||
<simpara>
|
||||
A extensão agora é compilada de forma compartilhada por padrão; anteriormente, o padrão era uma extensão
|
||||
estática, embora os binários oficiais do Windows compilassem uma extensão
|
||||
compartilhada.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.ffi">
|
||||
<title>FFI</title>
|
||||
|
||||
<simpara>
|
||||
Não é mais necessário especificar a biblioteca ao usar
|
||||
<methodname>FFI::cdef</methodname> e <methodname>FFI::load</methodname>.
|
||||
No entanto, esse recurso de conveniência não deve ser usado em produção.
|
||||
</simpara>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 xml:id="migration85.windows-support.streams">
|
||||
<title>Streams</title>
|
||||
|
||||
<simpara>
|
||||
Se apenas fluxos de pipe estiverem contidos no array <parameter>$read</parameter>
|
||||
e os arrays <parameter>$write</parameter> e
|
||||
<parameter>$except</parameter> estiverem vazios,
|
||||
<function>stream_select</function> agora se comporta de forma semelhante aos sistemas POSIX,
|
||||
ou seja, a função só retorna se pelo menos um pipe estiver pronto para leitura,
|
||||
ou após o tempo limite expirar.
|
||||
Anteriormente, <function>stream_select</function> retornava imediatamente,
|
||||
relatando todos os fluxos como prontos para leitura.
|
||||
</simpara>
|
||||
|
||||
</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
|
||||
-->
|
||||
Reference in New Issue
Block a user