PHP Digest No. 151 (25 de fevereiro a 11 de março de 2019)


Nova seleção com links para notícias e materiais. Na versão: atualizações do PHP, Laravel 5.8, Xdebug 2.7 e outras versões, 3 RFCs novas, 2 aceitas e um conceito do PHP Internals, uma porção de ferramentas úteis e muito mais.

Boa leitura!



Notícias e Lançamentos



Internos em PHP


  • [RFC] Cadeia de caracteres mais sutil para comparações de números - Em sua recente RFC, Nikita Popov sugere alterar o comportamento de == e tornar as comparações menos flexíveis menos propensas a erros. Em particular, a comparação de números é proposta para ser usada apenas se a string que está sendo comparada for realmente numérica. Caso contrário, o número é convertido em uma sequência e a sequência é comparada.

    Essa proposta implica uma mudança no comportamento dos operadores de comparação <=> , == , == != , > , >= , < , E <= , a switch constrói, funciona como in_array() , sort() e outros.

    Em resposta, idéias de graus variados de radicalismo foram recebidas: da introdução de uma bandeira especial declare('strict_comparison=1'); , que transformaria tudo == em === , antes da oferta para cancelar == em geral .

    Enquanto isso, na versão 7.4, o Aviso provavelmente será lançado se o resultado da comparação for diferente do esperado no PHP 8.
  • [RFC] Permitir espaço em branco à direita em seqüências numéricas - Outra sugestão criada para melhorar a consistência, mas enfraquecendo. É proposto permitir espaço em branco no final das linhas numéricas, ou seja, para que "123 " == " 123" e todas as outras operações funcionem, bem como para linhas com espaços à esquerda.
  • [RFC] Erros de tipo consistente para funções internas - A proposta foi aceita, o que significa que no PHP 8, funções internas lançam um TypeError se parâmetros do tipo errado forem passados ​​e, portanto, não retornarão nulos.
  • [RFC] Referências Fracas - Proposta de implementação de links fracos aceitos.
  • [RFC] Classes bloqueadas - propõe-se a introdução de uma nova palavra-chave locked para classes. Essas classes serão fechadas para o uso dinâmico de propriedades, ou seja, você não pode acessar propriedades não declaradas:
    Texto oculto
     locked class TestClass { public $definedProp; } $t = new testClass(); $t->definedProp = "OK"; echo $t->definedProp; unset($t->definedProp); echo $t->nonExistentProp; // Error $t->nonExistentProp = "Not OK"; // Error unset($t->definedProp); // Error 
  • video Notícias internas do PHP: Episódio 1 - Novo podcast do autor Xdebug Derick Rethans. Na primeira edição, uma conversa com Nikita Popov.
  • Permita o lançamento de __toString () - PR da Nikita com uma correção para um dos problemas antigos do PHP - a incapacidade de lançar exceções no __toString .
  • Compreensão de lista - Um conceito de Sarah Goleman com a implementação de compreensão de lista para PHP. A sintaxe é menos elegante que no Python, mas parece interessante:
     $a = [1, 2, 3]; $mul = 3; $c = [ for $a as $v yield $mul * $v use ($mul) ]; 

As ferramentas



Symfony



Laravel



Yii



Async php



Materiais de Aprendizagem



Obrigado pela atenção!

Se você perceber um erro ou imprecisão - informe-me no PM .
Perguntas e sugestões escreva para o correio ou twitter .

Mais notícias e comentários no canal PHP Digest Telegram.

Enviar link
Pesquisar links para todos os resumos
Edição anterior: PHP Digest No. 150

Source: https://habr.com/ru/post/pt443220/


All Articles