PHP 5.4 liberado! Novas funcionalidades e facilidades!
Olá meus caros leitores!
Acho que vocês já estão acostumados com a minha ausência aqui então vamos ao que interessa! Ontem (01/03) foi liberado o PHP 5.4 e hoje estou aqui para comentar um pouco das novas funcionalidades, como a nova maneira de declarar um array, traits e um console para rodar códigos PHP diretamente!
Novidades nos Arrays
Quem geralmente trabalha com JavaScript estava acostumado a uma declaração mais curta, usando os [], assim eu peguei emprestado um exemplo do manual do PHP, dê uma olhada como é possível declarar arrays agora:
<?php // Antes tinha que ser assim: $array = array( "foo" => "bar", "bar" => "foo" ); // Agora pode ser assim também! $array = [ "foo" => "bar", "bar" => "foo" ]; ?>
E além da nova forma de declaração também foi implementado a Array Deferencing que em outras palavras é o acesso direito de um membro do array diretamente no retorno de um método/função caso este retorne um array:
<?php function getArray() { return array(1, 2, 3); } // Como podemos fazer agora $secondElement = getArray()[1]; // Como fazíamos "antigamente" $tmp = getArray(); $secondElement = $tmp[1]; // ou assim list(, $secondElement) = getArray(); ?>
Bacana não é? isso vai deixar o código mais limpo e a programação mais divertida (saudades do meu tempo de programação PHP hehe).
Traits
E agora para deixar mais interessante, na versão 5.4 o PHP passa a implementar Traits, que aparecem para suprir aquelas problemas que você acredita que seriam possíveis de resolver com herança múltipla no PHP, o que os Traits fazem é uma herança horizontal, sugiro que você dê uma lida no post do Hélio sobre isso, lá ele explicou de maneira muito proveitosa. Em todo caso abaixo você vê um exemplo da implementação deles no PHP, o exemplo foi tirado do Manual do PHP:
<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); // Exibirá "Hello World" ?>
Build-in Web Server
Agora o PHP implementa nativamente no seu núcleo um web server que você pode acessar via linha de comando no Linux, Windows e Mac. Dê uma olhada na documentação oficial dele aqui.
Melhorias Acrescentadas
- Informações sobre Progresso de Upload em variável $_SESSION (até que enfim!!)
- Adição de tipo de número binários
- Suporte para sintaxe Class::{expressão}()
- Short open tags <? agora são suportadas sem necessidade de alterar o arquivo ini
- Otimização do consumo de memória
Funcionalidades Removidas
- Register_globals, safe_mode e magic_quotes removidos.
- y2k_compliance no arquivo ini
- Funções de sessão: session_is_registered(), session_register() e session_unregister()
- Extensão do sqlite agora está no PECL
Bugs Resolvidos
- #60879 unserialize() não chama __wakeup() do objeto).
- Correção da incompatibilidade de binários com PDO
- #48877 “bindValue” e “bindParam” agora funcionam para o PDO Firebird
- #55801 Comportamento de unserialize() mudou para melhorar performance
Se você quiser ver toda a lista de novas funcionalidades e bugs resolvidos, olhe neste link.
Bom gente, esse foi meu simples review sobre os novos atributos da nossa querida linguagem, espero que vocês tenham gostado, e deem uma olhada na página oficial do PHP, lá vocês poderão encontrar informações e muitos mais exemplos no manual da linguagem.
Referências:
- Manual do PHP – Arrays
- Manual do PHP – Traits
- Manual do PHP – Build-in Web Server
- hlegius – Traits em PHP – herança horizontal
- 4Linux – Webcast Tutorial: Sobre o PHP 5.4 e o futuro
- Duodraco – PHP 5.4 – saiba o que vem por aí
Abraços,