Enquanto rolava O PHP Conference Brasil, era lançada a nova release do PHP na sua Versão 7.3. Com o lançamento programado para o dia 13 de dezembro do ano passado, ele acabou surpreendendo a todos, sendo disponibilizado uma semana antes, no dia 6 de dezembro (no mesmo dia que se iniciava a PHP Conference Brasil). Coincidência? Eu acho que não!
Performance
Que o PHP 7, trouxe um grande salto de performance e agilidade não é novidade. Porém, a cada novo release o seu desempenho melhora, e com a versão 7.3 não poderia ser diferente. De acordo com o site phpbenchmarks, a nova versão tem um aumento de desempenho de 4% sobre o PHP 7.2, e se torna a versão mais rápida do PHP! Você pode conferir aqui!
Mas o que muda na versão 7.3?
A versão 7.3 do PHP já estava em teste desde o seu lançamento, em junho, na versão Alpha. Como já era de conhecimento público, a nova versão traz correções de bugs como de costume, novas implementações e métodos que se tornaram obsoletos.
Novidades
As principais novidades que entraram em vigor nessa nova versão, são:
- Flexibilidade de sintaxe Heredoc e Nowdoc
- Permitir trailing comma (vírgula à direita) em chamadas de função e método
- Tratamento de exceções em erros no json_encode e json_decode
- Atribuições de referências em list()
- Função is_countable() (basicamente retorna true ou false para indicar se um objeto é contável)
- Funções array_key_first() e array_key_last() para reunir a primeira e a última chave do array respectivamente
- Migração do PCRE para PCRE2 (utilizado para expressões regulares)
- Aprimoramentos de hash da senha Argon2
Atualizações para o FPM
O gerenciador de processos FastCGI também tem uma atualização e agora vem com novas opções para personalizar o log do FPM.
- log_limit: configure o tamanho permitido para mensagens de log. Esse limite pode ter mais de 1024 caracteres sem envolver
- log_buffering: permite registro em log experimental sem buffer extra
- decorate _workers_output: use esta opção de pool para desativar a decoração de saída para saída de trabalhadores quando catch_workers_output estiver ativado
Não irei abordar o funcionamento ou explicação de cada uma, pois você pode conferir todos os detalhes no PHP RFC, incluindo exemplos de código.
Descontinuações (Deprecations)
Todas as descontinuações e seus detalhamentos podem ser conferidos no PHP RFC. Segue a lista:
- Alias de função mbstring (como mbereg_replace e outras) usando um prefixo mb_ (por exemplo, mb_ereg )
- Funções de pesquisa de string
- Função fgetss() e strip_tags() (filtro string.strip_tags)
- Definição de uma função assert() com “free-standing”
- As constantes FILTER_FLAG_SCHEME_REQUIRED e FILTER_FLAG_HOST_REQUIRED
- A diretiva pdo_odbc.db2_instance_name do php.ini
- A função image2wbmp() deverá ser substituída pela imagewbmp()
- Descontinuação de constantes insensíveis a maiúsculas e minúsculas
Todas as descontinuações serão avisadas no PHP 7.3 e removidas na versão 8.
Conclusão
Podemos ver que a nova versão 7.3 além de ter um aumento significativo de performance trouxe também diferentes atualizações, assim como adicionou vários novos recursos e também descontinuou alguns (que se encontravam até mesmo obsoletos).
Toda a documentação já está disponível no php.net, e como citado anteriormente, você pode conferir todos os detalhes no PHP RFC.
O PHP 7.3 já está estável e mesclado ao branch master do projeto no GitHub.
E aí? Ansioso para a versão 7.4?