PHP Digest No. 149 (28 de janeiro a 11 de fevereiro de 2019)


Nova seleção com links para notícias e materiais. No lançamento: PHPUnit 8 e outros lançamentos, PSR-14 e PSR-12 na fase de revisão, JIT para PHP, começaram a trabalhar no PHP 8, um monte de RFC novo da PHP Internals, uma porção de ferramentas úteis e muito mais.

Boa leitura!



Notícias e Lançamentos



Internos em PHP


  • Uma ramificação do PHP-7.4 foi criada e o repositório principal do PHP agora está direcionado para o PHP 8.0. Isso significa que o trabalho no PHP 8.0 já foi iniciado e o PHP 7.4 será desenvolvido em paralelo. Portanto, no PHP 8, vários recursos obsoletos já foram removidos .
  • [RFC] JIT - Uma idéia antiga do JIT em PHP finalmente encontrou implementação graças aos esforços de Dmitry Stogov. O JIT é implementado como uma parte independente do OPcache e pode ser ativado / desativado mesmo em tempo de execução. O PHP 8 é considerado como a versão de destino, mas é possível incluí-lo no PHP 7.4 como um recurso experimental desabilitado por padrão. De acordo com os benchmarks de Nikita Popov, o JIT oferece um aumento de 30% para o PHP-Parser e cerca de 5% para o servidor anfph / http . Atualmente, não há suporte para Windows, o que é controverso no Internals.
    Enquanto isso, você já pode experimentar o PHP + JIT usando imagens do Docker (obrigado @dmitrybalabka ). Também um ótimo post sobre o que JIT significa para usuários de PHP .
  • [RFC] Erros de tipo consistente para funções internas - Outro RFC de Nikita Popov. É sugerido que, no PHP 8, todas as funções internas lançem um TypeError quando parâmetros do tipo errado são passados ​​em vez de vorning e retornando null .
    Texto oculto
    Em vez disso:
     var_dump(strlen(new stdClass)); // Warning: strlen() expects parameter 1 to be string, object given // NULL 

    Será:

     declare(strict_types=1); var_dump(strlen(new stdClass)); // TypeError: strlen() expects parameter 1 to be string, object given 

  • [RFC] Fluxo de trabalho e votação da RFC (atualização de 2019) - Tentativa de apertar um pouco a votação da RFC e burocratizar o processo foi recebido com uma tempestade de críticas na Internals. Tanto é assim que surgiram propostas alternativas . Zeev Surasky prometeu revisar sua versão e levar em consideração as críticas.
  • [RFC] Weak References - Propõe-se adicionar a classe WeakReference para implementar links fracos, o que permitirá que o desenvolvedor salve o link no objeto, sem impedir que ele seja removido pelo coletor de lixo. Isso pode ser especialmente útil para todos os tipos de caches.
  • [RFC] Permitir variação do tipo de retorno nulo - Uma proposta para implementar a capacidade de substituir o tipo de retorno void nos seus métodos. Apareceu na trilha de alterar a assinatura do método setUp() e vários outros no PHPUnit 8.
    Texto oculto
     class Foo { function method1 (): void {} function method2 () {} } class Bar extends Foo { function method1 (): array { return []; } function method2 (): array { return []; } } class Baz extends Foo { function method1 () { return 42; } function method2 () { return 42; } } 
  • [RFC] Dica de tipo misto - E aqui é proposto adicionar uma dica de tipo mixed . Isso indicará que a função pode aceitar (ou retornar) valores de diferentes tipos.
  • [RFC] Anotações 2.0 - Sugestões de rascunho para anotações completas. Já houve tentativas de implementar anotações e atributos simples . Enquanto isso, você pode usar o excelente plugin de anotação no PhpStorm .

As ferramentas



Symfony



Laravel



Yii



Async php



CMS



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
← Versão anterior: PHP Digest No. 148

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


All Articles