Files
archived-doc-pt-br/appendices/migration74/other-changes.xml
Leonardo Lara Rodrigues 8f2b5a820c harm translation among pages
2025-03-05 17:32:08 -03:00

563 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 90242f8793566eb87ee35a989912310a7c7c132b Maintainer: leonardolara Status: ready --><!-- CREDITS: marcosmarcolin,leonardolara -->
<sect1 xml:id="migration74.other-changes" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Outras mudanças</title>
<sect2 xml:id="migration74.other-changes.performance">
<title>Melhorias de desempenho</title>
<sect3 xml:id="migration74.other-changes.performance.core">
<title>Núcleo do PHP</title>
<para>
Um opcode VM especializado para a função <function>array_key_exists</function>
foi adicionado, o que melhora o desempenho desta função se ela
puder ser resolvida estaticamente. No código com namespace, pode ser necessário
escrever <literal>\array_key_exists()</literal> ou importar explicitamente
a função.
</para>
</sect3>
<sect3 xml:id="migration74.other-changes.performance.pcre">
<title>Expressões regulares (Compatível com Perl)</title>
<para>
Quando <function>preg_match</function> no modo UTF-8 (modificador <literal>"u"</literal>)
é chamado repetidamente na mesma string (mas possivelmente deslocamentos diferentes),
ele só será verificado para a validade UTF-8 uma vez.
</para>
</sect3>
</sect2>
<sect2 xml:id="migration74.other-changes.ini">
<title>Alterações na manipulação de arquivos INI</title>
<para>
<link linkend="ini.zend.exception-ignore-args">zend.exception_ignore_args</link> é uma nova diretiva INI
para incluir ou excluir argumentos de rastreamentos de pilha gerados
a partir de exceções.
</para>
<para>
<link linkend="ini.opcache.preload-user">opcache.preload_user</link> é uma nova diretiva INI
para especificar a conta de usuário sob a qual o código de
pré-carregamento é executado se, de outra forma, for executado como root (o que não é
permitido por motivos de segurança).
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.pkg-config">
<title>Migração para pkg-config</title>
<para>
Várias extensões foram migradas para usar exclusivamente pkg-config para a
detecção de dependências de biblioteca. Geralmente, isso significa que, em vez de usar
<option role="configure">--with-foo-dir=DIR</option> ou similar, apenas
<option role="configure">--with-foo</option> é usado. Os caminhos de biblioteca
personalizados podem ser especificados adicionando diretórios adicionais a <literal>PKG_CONFIG_PATH</literal>
ou especificando explicitamente as opções de compilação por meio de <literal>FOO_CFLAGS</literal>
e <literal>FOO_LIBS</literal>.
</para>
<para>
As seguintes extensões e SAPIs são afetadas:
</para>
<itemizedlist>
<listitem>
<simpara>CURL:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-curl</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Enchant:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-enchant</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>FPM:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-fpm-systemd</option> agora usa apenas pkg-config
para verificações do libsystem. A versão mínima exigida do libsystemd é 209.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>GD:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-gd</option> torna-se
<option role="configure">--enable-gd</option>
(se para habilitar a extensão) e
<option role="configure">--with-external-gd</option>
(para optar por usar um libgd externo, em vez do empacotado).
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-png-dir</option> foi removido. libpng é obrigatório.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-zlib-dir</option> foi removido. zlib é necessário.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-freetype-dir</option>
torna-se <option role="configure">--with-freetype</option>
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-jpeg-dir</option> torna-se
<option role="configure">--with-jpeg</option>
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-webp-dir</option> torna-se
<option role="configure">--with-webp</option>
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-xpm-dir</option> torna-se
<option role="configure">--with-xpm</option>
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>IMAP:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-kerberos-systemd</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Intl:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-icu-dir</option> foi removido.
Se <option role="configure">--enable-intl</option> é passado,
então libicu é sempre necessário.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>LDAP:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-ldap-sasl</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Libxml:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-libxml-dir</option> foi removido.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--enable-libxml</option> torna-se
<option role="configure">--with-libxml</option>.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-libexpat-dir</option> foi renomeado para
<option role="configure">--with-expat</option> e não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Litespeed:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-litespeed</option> torna-se
<option role="configure">--enable-litespeed</option>.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Mbstring:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-onig</option> foi removido.
A menos que <option role="configure">--disable-mbregex</option>
foi passado, libonig é necessário.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>ODBC:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-iodbc</option> não aceita mais um diretório.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--with-unixODBC</option> sem um diretório agora
usa pkg-config (preferencial). O diretório ainda é aceito para versões antigas sem libodbc.pc.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>OpenSSL:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-openssl</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>PCRE:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-pcre-regex</option> foi removido.
Em vez disso, <option role="configure">--with-external-pcre</option>
é fornecido para optar por usar uma biblioteca PCRE externa,
em vez do pacote.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>PDO_SQLite:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-pdo-sqlite</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Readline:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-libedit</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Sodium:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-sodium</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>SQLite3:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-sqlite3</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>XSL:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-xsl</option> não aceita mais um diretório.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Zip:</simpara>
<itemizedlist>
<listitem>
<simpara>
<option role="configure">--with-libzip</option> foi removido.
</simpara>
</listitem>
<listitem>
<simpara>
<option role="configure">--enable-zip</option> torna-se
<option role="configure">--with-zip</option>.
</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</sect2>
<sect2 xml:id="migration74.other-changes.csv">
<title>CSV escaping</title>
<para>
<function>fputcsv</function>,
<function>fgetcsv</function>,
<methodname>SplFileObject::fputcsv</methodname>,
<methodname>SplFileObject::fgetcsv</methodname>, e
<methodname>SplFileObject::setCsvControl</methodname>
agora aceitam uma string vazia como argumento <literal>$escape</literal>,
que desativa o mecanismo de escape proprietário do PHP.
</para>
<para>
O comportamento de <function>str_getcsv</function> foi ajustado
adequadamente (anteriormente, uma string vazia era idêntica
a usar o padrão).
</para>
<para>
<methodname>SplFileObject::getCsvControl</methodname> agora também
pode retornar uma string vazia para o terceiro elemento do array, adequadamente.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.filter">
<title>Filtragem de Dados</title>
<para>
A extensão <link linkend="book.filter">filter</link> não expõe mais
<option role="configure">--with-pcre-dir</option> para compilações Unix e agora pode ser
construída de forma confiável como compartilhada ao usar <command>./configure</command>
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.gd">
<title>GD</title>
<para>
O comportamento de <function>imagecropauto</function> no pacote
libgd foi sincronizado com o do sistema libgd:
</para>
<itemizedlist>
<listitem>
<simpara>
<constant>IMG_CROP_DEFAULT</constant> não está mais voltando
para <constant>IMG_CROP_SIDES</constant>
</simpara>
</listitem>
<listitem>
<simpara>
Threshold-cropping agora usa o algoritmo do sistema libgd
</simpara>
</listitem>
</itemizedlist>
<para>
O parâmetro <literal>$mode</literal> padrão de ]
<function>imagecropauto</function> foi alterado para
<constant>IMG_CROP_DEFAULT</constant>; passar <literal>-1</literal>
agora está descontinuado.
</para>
<para>
<function>imagescale</function> agora oferece suporte à proporção preservando
a escala para uma altura fixa passando <literal>-1</literal>
como <literal>$new_width</literal>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.hash">
<title>HASH Message Digest Framework</title>
<para>
A extensão <link linkend="book.hash">hash</link> não pode mais ser desativada
e é sempre parte integrante de qualquer compilação do PHP, semelhante
à extensão <link linkend="book.datetime">date</link>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.intl">
<title>Intl</title>
<para>
A extensão <link linkend="book.intl">intl</link>
agora requer pelo menos ICU 50.1.
</para>
<para>
<classname>ResourceBundle</classname> agora implementa
<interfacename>Countable</interfacename>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.ldap">
<title>Lightweight Directory Access Protocol</title>
<para>
O suporte para nsldap e umich_ldap foi removido.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.libxml">
<title>Libxml</title>
<para>
Todas as extensões baseadas em libxml agora requerem libxml 2.7.6 ou mais recente.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.mbstring">
<title>Multibyte String</title>
<para>
A biblioteca oniguruma não é mais empacotada com o PHP, em vez disso libonig
precisa estar disponível no sistema. Alternativamente,
<option role="configure">--disable-mbregex</option> pode ser usado para desabilitar
o componente mbregex.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.opcache">
<title>OPcache</title>
<para>
As opções de configuração <option role="configure">--disable-opcache-file</option> e
<option role="configure">--enable-opcache-file</option> foram removidas
em favor da diretiva
INI <link linkend="ini.opcache.file-cache">opcache.file_cache</link>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.password">
<title>Password Hashing</title>
<para>
As funções <function>password_hash</function> e
<function>password_needs_rehash</function> agora
aceitam &string; anulável e &integer; para o argumento <literal>$algo</literal>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.pear">
<title>PEAR</title>
<para>
A instalação do PEAR (incluindo PECL) não é mais habilitada por padrão. Ele
pode ser ativado explicitamente usando <option role="configure">--with-pear</option>.
Esta opção está descontinuada e pode ser removida no futuro.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.reflection">
<title>Reflection</title>
<para>
Os valores numéricos das constantes do modificador
(<literal>IS_ABSTRACT</literal>,
<literal>IS_DEPRECATED</literal>,
<literal>IS_EXPLICIT_ABSTRACT</literal>,
<literal>IS_FINAL</literal>,
<literal>IS_IMPLICIT_ABSTRACT</literal>,
<literal>IS_PRIVATE</literal>,
<literal>IS_PROTECTED</literal>,
<literal>IS_PUBLIC</literal>, e
<literal>IS_STATIC</literal>) nas classes
<classname>ReflectionClass</classname>,
<classname>ReflectionFunction</classname>,
<classname>ReflectionMethod</classname>,
<classname>ReflectionObject</classname>, e
<classname>ReflectionProperty</classname>
foram alterados.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.simplexml">
<title>SimpleXML</title>
<para>
<classname>SimpleXMLElement</classname> agora implementa
<interfacename>Countable</interfacename>.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.sqlite3">
<title>SQLite3</title>
<para>
O pacote libsqlite foi removido. Para construir a extensão
<link linkend="book.sqlite3">SQLite3</link>,
um sistema libsqlite3 ≥ 3.7.4 agora é necessário. Para construir a extensão
<link linkend="ref.pdo-sqlite">PDO_SQLite</link>,
um sistema libsqlite3 ≥ 3.5.0 agora é necessário.
</para>
<para>
A serialização e desserialização de <classname>SQLite3</classname>,
<classname>SQLite3Stmt</classname> e <classname>SQLite3Result</classname>
agora são explicitamente proibidas. Anteriormente, a serialização de instâncias
dessas classes era possível, mas a desserialização produzia objetos inutilizáveis.
</para>
<para>
A notação <literal>@param</literal> agora também pode ser usada para
denotar parâmetros de consulta SQL.
</para>
</sect2>
<sect2 xml:id="migration74.other-changes.zip">
<title>Zip</title>
<para>
A biblioteca libzip empacotada foi removida.
Um sistema libzip >= 0.11 agora é necessário para construir a
extensão <link linkend="book.zip">zip</link>.
</para>
</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
-->