O ano de 2013 terminou e foi marcado pelo lançamento do PHP 5.5, com ótimas novidades. Mas chegou 2014 e, logo no começo do ano, já temos o lançamento da primeira versão ALPHA do PHP 5.6. Isso mesmo! O ciclo de desenvolvimento do PHP parece estar a todo vapor. Além disso, o exame de certificação em PHP já se atualizou e agora as perguntas são baseadas na versão 5.5 do PHP.
Neste artigo, vamos dar uma olhada inicial nas principais características anunciadas para o PHP 5.6, lembrando que esta versão ainda é ALPHA, ou seja, ainda é instável e pode sofrer mudanças até o lançamento oficial da versão 5.6.0. Conforme serão anunciadas as novidades em outras versões ALPHA, BETA e Release Candidate, vou atualizando este artigo para que fique completo.
Novidades anunciadas na versão 5.6.0 ALPHA 1
- Nova sintaxe para declaração de funções variádicas (aquelas funções que aceitam um número impreciso de parâmetros, como a "printf").
- Nova sintaxe para desempacotamento de parâmetros em funções e métodos, que permite passar vários parâmetros para uma função a partir dos dados de um array.
- Suporte a declaração de constantes com expressões escalares.
- Implementado um operador interno para sobrescrita de operadores.
- Inclusão da nova SAPI phpdbg para depurações.
- Melhorias de performance e otimizações na Zend Engine (IS_VAR, checagem de string vazia).
- Pequenas melhorias no servidor embutido do PHP (novos Mime-types adicionados).
- Possibilidade de Upload de tamanho superior a 2GB.
- Depreciação de algumas chamadas de métodos em contextos inválidos (por exemplo, chamar de forma estática um método que utiliza o $this).
- Depreciação da ativação da diretiva de configuração "always_populate_raw_post_data", que servia para popular a variável superglobal $HTTP_RAW_POST_DATA.
- Correção de bugs.
- Melhorias em extensões:
- Curl: correção de bug.
- GMP: reestruturado para usar objetos ao invés de variáveis resources.
- Hash: adicionado novo algoritmo de codificação (CryptoPro S-box).
- JSON: correção de bug.
- mysqlnd: desabilitada flag para variáveis SP OUT em servidores superiores à versão 5.5.
- OPCache: otimizações diversas.
- OpenSSL: adição de novos recursos e correção de bugs.
- PDO_pgsql: correção de bugs.
- pgsql: melhorias diversas.
- Session: correção de bug e criação das funções
session_serializer_name, session_abort, session_reset esession_gc. - Standard: mudança no comportamento da função crypt, quando não é passado um sal. Mudança na função array_fill para conseguir criar array vazio.
- XMLReader: correção de bug.
- Zip: melhorias diversas e possibilidade de definir uma senha.
Neste lançamento, o que mais me chamou a atenção foi a nova sintaxe para funções variádicas (deixa o código mais elegante) e a melhoria para se trabalhar com números muito grandes (antes precisava usar BC ou GDB na forma de funções para realizar as operações).
Novidades anunciadas na versão 5.6.0 ALPHA 2
- Novo operador expoente (**) para aposentar a função pow.
- Melhorias no mysqli.
- Atualização de versão do PCRE.
Neste lançamento, nada revolucionário. Apenas um operador novo, para deixar mais legível operações matemáticas envolvendo expoente.
Novidades anunciadas na versão 5.6.0 ALPHA 3
- Criação de novo método mágico __debugInfo para depuração.
- Utilização do valor da diretiva de configuração default_charset para ser o valor padrão para algumas funções que recebem o charset por parâmetro (exemplo: htmlentities, htmlspecialchars, etc). Não se aplica para escapeshellcmd, escapeshellarg, fgetcsv e funções relacionadas a bancos de dados.
- Melhorias na extensão cURL.
- Upgrade e correção de bug da extensão Fileinfo.
- Nova configuração para FPM.
- Correção de bugs na extensão GD e JSON.
- Melhorias na extensão OPCache.
- Várias melhorias na extensão OpenSSL.
- Melhorias na extensão pgsql (banco de dados PostgreSQL).
Neste lançamento, destaco o novo método mágico __debugInfo, a utilização de config para codificação padrão de algumas funções e o pacotão de melhorias da extensão OpenSSL.
Novidades anunciadas na versão 5.6.0 BETA 1
- Criação do método SplFileObject::fread (similar à função fread).
- Criação do método DateTimeImmutable::createFromMutable para criar uma DateTime imutável a partir de um objeto DateTime convencional (mutável).
- Criação da função hash_equals para prevenção de timing attack no PHP.
- Ajuste na função hash_pbkdf2 para funcionar corretamente se não passar o parâmetro $length.
- Alteração nas funções da extensão Mcrypt para não permitir tamanhos de chave inválidos.
- Melhorias e correções na extensão OpenSSL.
- Suporte a marcações em expressões regulares compatíveis com perl (PCRE).
- Reestruturação da extensão PDO_pgsql (conexão com PostgreSQL) para utilizar recursos da libpq, depreciação de PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT e inclusão de PDO::PGSQL_ATTR_DISABLE_PREPARES.
- Melhorias na extensão pgsql para permitir conexões assíncronas com PostgreSQL.
- Remoção de session_gc e session_serializer_name (introduzidas na versão alpha).
- Correções de vários bugs.
Neste lançamento, destaco a função hash_equals e o método SplFileObject::fread que incomodava pela sua ausência.
Novidades anunciadas na versão 5.6.0 BETA 2
- Adicionado um novo modo de fetch no mysqlnd.
- Adicionado o comando watch ao phpdbg para servir de watchpoints para depuração.
- Correções de vários bugs.
Neste lançamento, nada de especial. Apenas muitos bugs corrigidos.
Anúncio da versão 5.6.0 BETA 3
Este lançamento apenas corrigiu bugs de versões anteriores.
Anúncio da versão 5.6.0 BETA 4
Este lançamento foi a última versão beta e apenas corrigiu bugs de versões anteriores.
Em breve, escreverei artigos específicos para explicar as funcionalidades mais relevantes que forem anunciadas. Então, siga o blog para não perder nenhuma novidade.
1 comentário
Olá Rubens,
Não sei se neste espaço cabe esta sugestão, já que este artigo refere-se a novidades, seria interessante falar sobre o composer com exemplos praticos? Já que este gerenciador está sendo cada vezmais utilizado e gostaria devereste assunto ser abordado com sua didatica.
Postar um comentário
Nota: fique a vontade para expressar o que achou deste artigo ou do blog.
Dica: para acompanhar as respostas, acesse com uma conta do Google e marque a opção "Notifique-me".
Atenção: o blogger não permite inclusão de tags nos comentários, por isso, use algum site externo para postar seu código com dúvidas e deixe o link aqui. Exemplo: pastebin.com