diff --git a/appendices/migration70/incompatible/error-handling.xml b/appendices/migration70/incompatible/error-handling.xml index f62d54e53..9b766707a 100644 --- a/appendices/migration70/incompatible/error-handling.xml +++ b/appendices/migration70/incompatible/error-handling.xml @@ -1,5 +1,5 @@ - + Modificações na manipulação de erros e exceções diff --git a/language/attributes.xml b/language/attributes.xml index 99092e149..e9ed3b1dd 100644 --- a/language/attributes.xml +++ b/language/attributes.xml @@ -1,5 +1,5 @@ - + Atributos @@ -7,36 +7,25 @@ - Os atributos oferecem a capacidade de adicionar informações de metadados estruturadas e legíveis por máquina - em declarações no código: classes, métodos, funções, parâmetros, - propriedades e constantes de classe podem ser o destino de um atributo. Os metadados - definidos pelos atributos podem ser inspecionados em tempo de execução usando as - APIs - Reflection. Os atributos podem, portanto, ser pensados como uma linguagem de configuração - incorporada diretamente no código. + Os atributos PHP fornecem metadados estruturados e legíveis por máquina para classes, métodos, + funções, parâmetros, propriedades e constantes. Eles podem ser inspecionados no momento da execução + por meio da API Reflection, permitindo comportamento + dinâmico sem modificar o código. Os atributos fornecem uma maneira declarativa de anotar + código com metadados. - - Com atributos, a implementação genérica de um - recurso e seu uso concreto em uma aplicação podem ser desacoplados. De certa - forma, é comparável a interfaces e suas implementações. Mas onde as - interfaces e implementações são sobre código, os atributos são sobre a - anotação de informações extras e configuração. As interfaces podem ser - implementadas por classes, mas os atributos também podem ser declarados - em métodos, funções, parâmetros, propriedades e constantes de classe. - Como tal, eles são mais flexíveis do que as interfaces. + Atributos permitem o desacoplamento da implementação de um recurso de seu uso. Enquanto + interfaces definem estrutura ao impor métodos, atributos fornecem metadados em vários + elementos, incluindo métodos, funções, propriedades e constantes. Diferentemente de interfaces, + que impõem implementações de métodos, atributos anotam código sem alterar sua estrutura. - - Um exemplo simples de uso de atributo é converter uma interface - que possui métodos opcionais para usar atributos. Vamos assumir uma interface - ActionHandler - que representa uma operação em uma aplicação, onde algumas - implementações de um manipulador de ações requerem configuração e outras não. Em vez de exigir que todas as classes - que implementam ActionHandler implementem - um método setUp(), - um atributo pode ser usado. Um benefício - dessa abordagem é que o atributo pode ser usado várias vezes. + Atributos podem complementar ou substituir métodos de interface opcionais fornecendo metadados em vez de + estrutura imposta. Considere uma interface ActionHandler que representa uma + operação em um aplicativo. Algumas implementações podem exigir uma etapa de configuração, enquanto outras não. + Em vez de forçar todas as classes que implementam ActionHandler a definir um + método setUp(), um atributo pode indicar requisitos de configuração. Essa abordagem + aumenta a flexibilidade, permitindo que os atributos sejam aplicados várias vezes quando necessário. @@ -112,21 +101,21 @@ executeAction($copyAction); Sintaxe de Atributo - Existem várias partes para a sintaxe de atributos. Primeiro, uma declaração - de atributo é sempre incluída com um - #[ inicial e um ] - final correspondente. Dentro, um ou vários atributos são listados, - separados por vírgula. O nome do atributo é um nome não qualificado, qualificado ou totalmente qualificado, - conforme descrito em Noções Básicas do Uso de Namespaces. - Os argumentos para o atributo são opcionais, mas são colocados entre parênteses (). - Os argumentos para atributos só podem ser valores literais ou expressões constantes. Tanto a sintaxe de - argumentos posicionais quanto a dos argumentos nomeados podem ser usadas. + A sintaxe de atributo consiste em vários componentes-chave. Uma declaração de atributo + começa com #[ e termina com + ]. Dentro, um ou mais atributos podem ser listados, + separados por vírgulas. O nome do atributo pode ser não qualificado, qualificado, + ou totalmente qualificado, conforme descrito em Usando Namespaces Básicos. + Argumentos para o atributo são opcionais e colocados entre parênteses + (). Argumentos podem ser apenas valores literais ou expressões + constantes. Tanto a sintaxe de argumento posicional quanto a de argumento nomeado são suportadas. - Os nomes dos atributos e seus argumentos são resolvidos para uma classe e os argumentos são passados para seu construtor, - quando uma instância do atributo é solicitada por meio da API Reflection. Como tal, - uma classe deve ser introduzida para cada atributo. + Nomes de atributos e seus argumentos são resolvidos para uma classe, e os argumentos + são passados ​​para seu construtor quando uma instância do atributo é solicitada + por meio da API Reflection. Portanto, é recomendado introduzir uma classe + para cada atributo. @@ -184,17 +173,19 @@ class AnotherThing Lendo Atributos com a API Reflection - Para acessar atributos de classes, métodos, funções, parâmetros, propriedades e constantes de classe, - a API Reflection fornece o método getAttributes em cada um dos objetos - Reflection correspondentes. Este método retorna um array de instâncias de ReflectionAttribute - que podem ser consultadas para o nome do atributo, argumentos e para criar uma instância do atributo representado. + Para acessar atributos de classes, métodos, funções, parâmetros, propriedades + e constantes de classe, use o método getAttributes fornecido + pela API Reflection. Este método retorna um array de instâncias de ReflectionAttribute. + Essas instâncias podem ser consultadas para o nome do atributo, argumentos e + podem ser usadas para instanciar o atributo representado. - Essa separação da representação do atributo refletido da instância real aumenta o controle do programador - para lidar com erros relacionados a classes de atributos ausentes, erros de digitação ou argumentos ausentes. Somente após - chamar ReflectionAttribute::newInstance, os objetos da classe de atributo são instanciados e a correspondência correta dos argumentos - é validada, não antes. + Separar a representação do atributo refletido de sua instância real fornece mais + controle sobre o tratamento de erros, como classes de atributos ausentes, argumentos digitados incorretamente + ou valores ausentes. Objetos da classe de atributo são instanciados somente após chamar + ReflectionAttribute::newInstance, garantindo que a validação do argumento + ocorra naquele ponto. @@ -248,9 +239,9 @@ object(MyAttribute)#3 (1) { - Em vez de iterar todos os atributos na instância de reflexão, apenas aqueles - de uma determinada classe de atributo podem ser - recuperados passando o nome da classe de atributo pesquisado como argumento. + Em vez de iterar sobre todos os atributos na instância de reflexão, + você pode recuperar apenas aqueles de uma classe de atributo específica passando + o nome da classe de atributo como um argumento. @@ -280,9 +271,10 @@ dumpMyAttributeData(new ReflectionClass(Thing::class)); Declarando Classes de Atributos - Embora não seja estritamente necessário, é recomendável criar uma classe real para cada atributo. - No caso mais simples, apenas uma classe vazia é necessária com o atributo #[Attribute] declarado - que pode ser importado do namespace global com uma declaração use. + É recomendado definir uma classe separada para cada atributo. + No caso mais simples, uma classe vazia com a declaração #[Attribute] + é suficiente. O atributo pode ser importado do namespace global usando uma + declaração use. @@ -305,8 +297,9 @@ class MyAttribute - Para restringir o tipo de declaração ao qual um atributo pode ser atribuído, uma máscara de bits pode ser passada - como o primeiro argumento para a declaração #[Attribute]. + Para restringir os tipos de declarações às quais um atributo pode ser aplicado, + passe uma máscara de bits como o primeiro argumento para a declaração + #[Attribute]. @@ -346,8 +339,10 @@ class MyAttribute - Por padrão, um atributo só pode ser usado uma vez por declaração. Se o atributo deve ser repetível nas declarações, - ele deve ser especificado como parte da máscara de bits para a declaração #[Attribute]. + Por padrão, um atributo só pode ser usado uma vez por declaração. Para permitir + que um atributo seja repetível, especifique-o na máscara de bits da + declaração #[Attribute] usando o sinalizador + Attribute::IS_REPEATABLE. diff --git a/reference/filesystem/functions/is-link.xml b/reference/filesystem/functions/is-link.xml index ac506619f..5dcfe46bb 100644 --- a/reference/filesystem/functions/is-link.xml +++ b/reference/filesystem/functions/is-link.xml @@ -1,5 +1,5 @@ - + is_link @@ -81,6 +81,7 @@ if (is_link($link)) { is_dir is_file readlink + symlink diff --git a/reference/filesystem/functions/symlink.xml b/reference/filesystem/functions/symlink.xml index 3f1aa5d5e..37feea7b4 100644 --- a/reference/filesystem/functions/symlink.xml +++ b/reference/filesystem/functions/symlink.xml @@ -1,5 +1,5 @@ - + symlink @@ -85,6 +85,7 @@ echo readlink($link); &reftitle.seealso; + is_link link readlink linkinfo diff --git a/reference/gnupg/functions/gnupg-gettrustlist.xml b/reference/gnupg/functions/gnupg-gettrustlist.xml index d3b85825e..0f76a6fa1 100644 --- a/reference/gnupg/functions/gnupg-gettrustlist.xml +++ b/reference/gnupg/functions/gnupg-gettrustlist.xml @@ -1,5 +1,5 @@ - + gnupg_gettrustlist diff --git a/reference/gnupg/functions/gnupg-import.xml b/reference/gnupg/functions/gnupg-import.xml index 5963cf140..0a92542e8 100644 --- a/reference/gnupg/functions/gnupg-import.xml +++ b/reference/gnupg/functions/gnupg-import.xml @@ -1,5 +1,5 @@ - + gnupg_import diff --git a/reference/strings/functions/parse-str.xml b/reference/strings/functions/parse-str.xml index d775ac3c0..037619f59 100644 --- a/reference/strings/functions/parse-str.xml +++ b/reference/strings/functions/parse-str.xml @@ -1,5 +1,5 @@ - + parse_str @@ -14,7 +14,7 @@ arrayresult - Interpreta string como se ela fosse uma query string + Interpreta string como se ela fosse uma string de consulta passada via URL e cria variáveis no escopo atual ou no array se informado em result. @@ -28,7 +28,7 @@ string - The input string. + A string de entrada. @@ -95,19 +95,19 @@ &reftitle.examples; - Using <function>parse_str</function> + Usando <function>parse_str</function> Como variáveis no PHP não podem conter pontos ou espaços em seus nomes, - estes são convertidos em underlines. O mesmo se aplica aos nomes de + estes são convertidos em sublinhados. O mesmo se aplica aos nomes de chaves de array no caso de utilizar esta função com o parâmetro result. - Name mangling em <function>parse_str</function> + Confusão de nomes em <function>parse_str</function> - Todas as variáveis criadas, ou os valores informados no array do segundo parâmetro, + parse_str() é afetado pela diretiva max_input_vars. + Exceder esse limite emite um E_WARNING, + e quaisquer variáveis ​​além do limite não são adicionadas ao array de resultados. + O padrão é 1000; ajuste max_input_vars conforme necessário. + + + + + + Todas as variáveis criadas ou os valores informados no array do segundo parâmetro, já estarão automaticamente convertidos porurldecode. - Para obter a QUERY_STRING em si, vocẽ pode utilizar a variável + Para obter a string de consulta (QUERY_STRING) em si, vocẽ pode utilizar a variável $_SERVER['QUERY_STRING']. Além disso, leia a seção sobre variáveis de fontes