Files
archived-doc-pt-br/appendices/migration83/new-features.xml
2025-09-01 13:26:14 -03:00

203 lines
6.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: 617b58b308d1f1916efaa4a3eb158fed251ae439 Maintainer: leonardolara Status: ready --><!-- CREDITS: marcosmarcolin, leonardolara -->
<sect1 xml:id="migration83.new-features" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Novas Funcionalidades</title>
<sect2 xml:id="migration83.new-features.core">
<title>Núcleo do PHP</title>
<sect3 xml:id="migration83.new-features.core.readonly-modifier-improvements">
<title>Propriedades somente leitura</title>
<para>
Classes anônimas agora podem ser marcadas como somente leitura.
</para>
<para>
Propriedades somente leitura agora podem ser reinicializadas durante a clonagem.
<!-- RFC: https://wiki.php.net/rfc/readonly_amendments -->
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.typed-class-constants">
<title>Constantes de Classe Tipadas</title>
<para>
Constantes de classe, interface, trait e enum agora suportam declarações de tipo.
<!-- RFC: https://wiki.php.net/rfc/typed_class_constants -->
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.closures-created-from-magic-methods">
<title>Closures criados a partir de métodos mágicos</title>
<para>
Closures criados a partir de métodos mágicos agora podem aceitar argumentos nomeados.
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.final-modifier-method-from-trait">
<title>O modificador final com um método de uma trait</title>
<para>
O modificador final agora pode ser usado ao utilizar um método de uma trait.
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.override-attribute">
<title>Sobreposição de atributos</title>
<para>
Foi adicionado o atributo #[\Override] para verificar se um método existe em uma classe pai ou
interface implementada.
<!-- RFC: https://wiki.php.net/rfc/marking_overriden_methods -->
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.fetch-class-constant-dynamically-syntax">
<title>Sintaxe para buscar constantes de classe dinamicamente.</title>
<para>
Agora é possível acessar constantes de classe de forma dinâmica usando a sintaxe
<code>C::{$name}</code>.
<!-- RFC: https://wiki.php.net/rfc/dynamic_class_constant_fetch -->
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.static-variable-initializers">
<title>Inicializadores de variáveis Estáticas</title>
<para>
Os inicializadores de variáveis estáticas agora podem conter expressões arbitrárias.
<!-- RFC: RFC: https://wiki.php.net/rfc/arbitrary_static_variable_initializers -->
</para>
</sect3>
<sect3 xml:id="migration83.new-features.core.fallback-value-syntax-for-php-ini">
<title>Sintaxe de valor de fallback para variáveis ini</title>
<para>
O arquivo php.ini agora suporta a sintaxe de valor de fallback/default.
<!-- refs: https://github.com/php/php-src/pull/11351 -->
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
No arquivo /path/to/user.ini estão contidas as seguintes configurações:
listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/
$user_ini = parse_ini_file('/path/to/user.ini');
echo $user_ini['listen']; // localhost:9000
]]>
</programlisting>
</informalexample>
</para>
</sect3>
</sect2>
<sect2 xml:id="migration83.new-features.cli">
<title>CLI</title>
<para>
Agora é possível verificar a sintaxe de vários arquivos.
</para>
</sect2>
<sect2 xml:id="migration83.new-features.dom">
<title>DOM</title>
<para>
Foram adicionadas as propriedades <property>DOMElement::$className</property>
e <property>DOMElement::$id</property>.
No momento, essas propriedades não são seguras para binários devido a limitações
subjacentes do libxml2.
Isso significa que os valores das propriedades serão truncados em um byte NUL.
</para>
<para>
Foram adicionadas as propriedades <property>DOMNode::$isConnected</property>
e <property>DOMNameSpaceNode::$isConnected</property>.
</para>
<para>
Foram adicionadas as propriedades <property>DOMNode::$parentElement</property> e
<property>DOMNameSpaceNode::$parentElement</property>.
</para>
</sect2>
<sect2 xml:id="migration83.new-features.ffi">
<title>FFI</title>
<para>
Agora é possível atribuir <classname>FFI\CData</classname> a outros FFI\CData.
Isso significa que CData pode ser atribuído a estruturas e campos.
</para>
</sect2>
<sect2 xml:id="migration83.new-features.opcache">
<title>Opcache</title>
<para>
<code>opcache_get_status()['scripts'][n]['revalidate']</code> agora contém
um carimbo de data e hora Unix que indica quando a próxima revalidação do carimbo de
data e hora dos scripts está programada, de acordo
com a diretiva INI
<link linkend="ini.opcache.revalidate-freq">opcache.revalidate_freq</link>;
</para>
</sect2>
<sect2 xml:id="migration83.new-features.posix">
<title>POSIX</title>
<para>
A função <function>posix_getrlimit</function> agora aceita um parâmetro opcional
<parameter>$resource</parameter> para permitir a busca de um único limite de recurso.
</para>
<para>
A função <function>posix_isatty</function> agora gera avisos de tipo para inteiros,
seguindo as semânticas ZPP usuais.
</para>
<para>
A função <function>posix_ttyname</function> agora gera avisos de tipo para inteiros,
seguindo as semânticas ZPP usuais, e avisos de valor para inteiros de
descritor de arquivo inválidos.
</para>
</sect2>
<sect2 xml:id="migration83.new-features.streams">
<title>Fluxos</title>
<para>
Agora, os fluxos podem emitir a notificação <constant>STREAM_NOTIFY_COMPLETED</constant>.
Isso não estava implementado anteriormente.
</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
-->