PHP 7 já está em funcionamento

A nova atualização da linguagem já chegou. Veja as principais mudanças e a opinião da Tanda Interativa.

Postado em 11/11/2015


 

Em julho de 2015 foi lançado o beta release do PHP 7, sendo a primeira versão maior a ser liberada depois de anos e a sucessora da atual 5.6. Essa nova versão trás muitas novidades e é um salto incrível para o PHP em termos de performance e sintaxe do código.

Mas o que houve com o PHP 6? Há alguns anos circulou uma versão preliminar do que pretendiam lançar como o PHP 6. A versão nunca foi concluída, mas algumas empresas a utilizaram e inclusive livros foram publicados sobre ela. Para evitar confundir a nova versão do PHP com esse pre-release antigo, resolveram batizá-la de "PHP 7".

Por enquanto, nós da Tanda Interativa não utilizaremos o PHP 7 porque muitos plugins ainda não foram desenvolvidos. O novo programa removeu alguns recursos obsoletos necessitando alguma mão de obra para fazer esses recursos voltarem a funcionar. Neste caso seria necessário mexer no código, ou esperar alguém desenvolver algum tipo de plugin para corrigir esse problema, como por exemplo: MySQL_. Este comando foi excluído. Muitos programadores que o utilizam, ainda não aderiram ao PHP 7, porque para concluírem seus projetos, esse(s) comando(s) precisam funcionar, então eles preferem manter na versão mais antiga e aguardar uma noticia sobre o funcionamento desses recursos.

Vamos às novidades:

Performance, muita performance!

A performance do PHP 7 em relação ao 5 aumentou em torno de 10–25% de acordo com os primeiros testes. Existem vários testes de performance por aí, alguns sugerindo mais velocidade do que usando a HHVM, que é uma versão modificada do PHP utilizada no facebook, muito mais rápida e eficiente, porem complicada de instalar e configurar.

Novas palavras reservadas

No PHP 7 teremos novas palavras reservadas, incluindo os nomes dos tipos de dados primitivos (int, float, bool, string, true, false, null) além de resource, object, scalar, mixed e numeric. Essas palavras não poderão ser usadas em namespaces, nomes de classes, traits e interfaces.

Essa mudança foi feita agora para possibilitar a criação de classes representando tipos escalares em uma versão futura (quem sabe no PHP 7.1!). Para ver a mágica que se pode esperar disso, consulte este repositório: https://github.com/nikic/scalar_objects. Já pensou poder chamar $string->length() ao invés de strlen($string)?

Remoção dos Construtores do PHP 4

No PHP 5 ainda era suportado o jeito antigo de escrever métodos construtores para as classes. No PHP 7 esses construtores antigos lançarão um aviso do tipo E_DEPRECATED

<?php 
class Veiculo
{
    public function
veiculo()
    {
        // um construtor no PHP 4, lançará um
E_DEPRECATED no PHP
7
    }
    public function
__construct()
    {
        // um
construtor no PHP 5
    }
}

Operador "Espaço-nave": <=>

Esse operador funciona de forma semelhante aos <, <=, ==, > e >=, mas caso a comparação seja idêntica, retornará 0. Se o valor da esquerda for maior, retornará 1, se o valor da direita que for maior, retornará -1.

Declaração do Tipo de Retorno

É possível declarar o tipo de retorno dos métodos, desta forma assegurando o tipo de retorno de maneira mais consistente do que simplesmente escrevendo um PHPDoc. Através disso será possível prevenir que um método que sobrescreve outro quebre o tipo de retorno original, além de impossibilitar que um método retorne null, forçando uma boa prática de programação.

Tipos de Parâmetros Escalares

O PHP 5.6 já permite obrigar que um argumento de um método seja do tipo array ou uma instância de determinada classe. Com o PHP 7 também é possível declarar que um parâmetro precisa ser de um tipo escalar (int, float, string e bool)."

Operador "Null Coalesce": ??

Muitas vezes temos a necessidade de testar se um parâmetro existe, retornando seu próprio valor caso positivo, e um valor alternativo caso contrário. No PHP 5.6, teríamos de testar a existência do parâmetro antes de retornar seu valor, caso contrário receberíamos um E_NOTICE. Agora é possível usar o operador ??, que testa a presença do parâmetro e não lança um aviso em caso de não estar definido:

<?php
$lista = ['chave'
=> 'valor'];
// PHP 5.6
$a = isset($lista['nao_tem']) ?
$lista['nao_tem'] :
123; // válido
$a =
$lista['nao_tem']
?: 123; // E_NOTICE se a chave não
existir
// PHP 7
$a =
$lista['nao_tem']
?? 123; // válido

Sintaxe Uniforme de Variáveis

Foi introduzida uma sintaxe de variáveis consistente, que permitirá realizar operações sobre expressões arbitrárias, aninhadas e/ou diferentes, de forma semelhante ao que já podemos fazer em JavaScript.

<?php
$empresa->getConsultores()[0]->marcarComoAtivo();
Classe::getClosure()();

Remoção de Tags Alternativas

As seguintes tags alternativas para abrir e fechar código PHP foram removidas: <%, <%=, %>, .

Agrupar classes inclusas com "use"

Quando utilizamos diversas classes de um mesmo namespace, agora será possível agrupá-las ao invés de repetir o namespace para cada classe:

?php
// PHP 5.6
use
yiihelpersArrayHelper;
use
yiihelpersHtml;
use
yiihelpersUrl;
// PHP 7
use
yiihelpers{ArrayHelper,
Html, Url};

Operador de Divisão de Inteiros

Foi adicionado um novo operador (%%) e uma nova função (intdiv) que permitem a divisão de um inteiro por outro, retornando um inteiro ao invés de um float. Desta forma, 3 %%2 (ou intdiv(3, 2)) resultaria em 1 enquanto 3 / 2 resultaria em 1.5.

Classes Anônimas

Tais como funções anônimas (closures), classes anônimas são úteis quando apenas criadas e/ou utilizadas em tempo de execução.

<?php
var_dump((new
class {
     public
function execute() { return 12345; }
})->execute());
// 12345

Conclusão

O ciclo para envio de novas propostas para o PHP 7 já está encerrado, então é possível que não hajam outras novidades importantes nesta versão. Para saber mais e acompanhar o desenvolvimento do PHP, acompanhe a página de Request for Comments no site.

Deixe seu comentário

Seja o primeiro a comentar!!!

Categorias: Internet; Programação; Tecnologia;

Hoje o PHP completa 20 anos!

Em 8 de Junho de 1995, Rasmus Lerdorf publicava a versão 1.0 do Personal Home Page Tools. Nascia o PHP!

Postado em 08/06/2015


É com grande felicidade que comemoramos hoje o aniversário de 20 anos de uma das principais plataformas de desenvolvimento para a web. Rasmus Lerdorf publicava, em 8 de Junho de 1995, a versão 1.0 do Personal Home Page Tools. Em cerca de 3 anos o conjunto de scripts que Rasmus criara evoluiu e, junto com sua comunidade, lançaram o PHP3 em 1998, já como uma linguagem de alto nível e usando o acrônimo recursivo PHP Hypertext Preprocessor.

Na virada do milênio a grande maioria dos sites na web que usavam alguma linguagem server side já haviam adotado o PHP. Nessa época foi lançado o PHP4 com diversas melhorias, além de projetos de suporte paralelos, como o PEAR e PECL.

Em 2004 era lançado o PHP5, que trazia toda uma nova API para os desenvolvedores, levando o paradigma de orientação a objetos para a plataforma, além de um sem número de melhorias. Isso aproximou o PHP de linguagens mais maduras e levou a linguagem do ElePHPant a um outro patamar ao longo dos anos.

Falando nele, que é um mascote que figura entre os mais icônicos na comunidade opensource, o ElePHPant é criação de Vicent Pontier e é objeto de desejo de desenvolvedores de diversas plataformas (inclusive de não-desenvolvedores, também!) há anos!



O PHP chega aos 20 anos ainda com os holofotes em si no quesito desenvolvimento para web – aprendendo com o melhor de outras plataformas como Ruby, Java, Python, entre outros. Com uma comunidade apaixonada e produzindo bibliotecas e frameworks de qualidade, além de contribuir ativamente com o ecossistema da plataforma com conteúdo, testes, tradução, documentação, palestras e treinamentos. Ainda neste ano a plataforma deve ganhar sua maior atualização em 11 anos: o PHP7.

Parabéns comunidade, parabéns desenvolvedores e, principalmente: parabéns PHP! Que venham outros 20 anos!

Deixe seu comentário

Seja o primeiro a comentar!!!

Categorias: Tecnologia; Programação;