
Figura 1: Novidades do PHP 5.4
Na área da tecnologia da informação, é comum haver sempre uma reciclagem dos profissionais. Tudo muda o tempo todo. Tecnologias novas surgem, a forma de fazer a mesma coisa muda, se tornando mais eficiente. E porque não com as linguagens de programação? Ainda mais relacionadas à web, que é o setor em grande crescimento atualmente.
Vamos trabalhar algumas novidades que a linguagem PHP 5.4 trás para nós desenvolvedores. Houve várias mudanças e incrementos, vamos tratar de três deles teoricamente e no final os abordaremos em um exemplo:
- Servidor HTTP embutido.
- Estrutura de arrays (como desenvolvedores utilizamos bastante).
- NameSpaces.
SERVIDOR HTTP
Quem nunca instalou e configurou programas para gerenciar seu servidor HTTP? Podemos considerar que o Xampp e o Wampp são os mais famosos, contendo além do servidor de páginas, o SGBD (gerenciador de banco de dados) MySQL, servidor SMTP para e-mails, FTP, etc. A popularização do uso desse tipo de ferramenta se deu pelo fato da facilidade de instalação e configuração.
Tudo muda com a integração do servidor de página no próprio PHP. A facilidade do uso e a comodidade são fascinantes. Para exemplo, depois de ter baixado o PHP e configurado corretamente, basta executarmos o comando abaixo na pasta do projeto que queremos executar:
Listagem 1: Comando de inicialização do HTTP
//Modelo
php –S pastaDoProjeto localhost:8080
//Pratica
php –S www/projeto localhost:8080
Após esse comando, é só ir ao seu navegador e digitar: localhost:8080/www/projeto e pronto! Seu servidor HTTP está funcionando a todo vapor. Se prestar atenção também no console, verá algumas mensagens. Essas mensagens são de erro, pasta não encontrada, como um log de navegação da sua aplicação. Você pode também configurar algum host, para não trabalhar na nomenclatura “localhost:8080”, dai fica a seu critério.
ESTRUTURA DE ARRAY
O que seria de nós desenvolvedores sem os famosos arrays? O PHP 5.4 traz uma forma diferente de trabalhar os arrays. Nas versões anteriores a 5.4 trabalhávamos os arrays da seguinte forma:
Listagem 2: Trabalhando array em versões anteriores
<?php
//Forma de utilização em versões anteriores a 5.4
$array = array();//declaração
$array1 = array('1','2','3');//inserindo valores
print_r($array1);
$array2 = array('um'=>'1', 'dois'=>'2', 'tres'=>'3');
print_r($array2);
?>
A novidade:
Listagem 3: Trabalhar array na versão atual do PHP
<?php
//Forma de utilização na versão 5.4
$aaray1 = [];//declaração
$array1 = ['1','2','3'];//inserindo valores
print_r($array1);
$array2 = [];//declaração
$array2 = ['um'=>'1', 'dois'=>'2', 'tres'=>'3'];//inserindo valores
print_r($array2);
?>
Conseguiram enxergar a diferençar? Não utilizamos mais o “array()”, apenas colchete “[]” com seus respectivos valores dentro do mesmo.
NAMESPACES
Vamos ver agora do que se trata o namespace. Já pensou em você construindo um sistema gigantesco, com diversos arquivos de classes ou algo parecido e no meio do desenvolvimento repete alguma nomenclatura? Pois é, o namespace vem para facilitar a organização do seu código. Alguns frameworks com o Zend Framework utilizam prefixo, que simulam os namespaces, por exemplo:
Listagem 4: Exemplo de prefixos
<?php
Class Aplicacao_Controle_Incluir {
}
?>
Mas, e utilizando namespace, como ficaria?
Listagem 5: Utilizando NameSpace arquivo index.php
<?php
//incluindo arquivo
include 'namespace.php';
//forma de declaração da namespace
use Pacote as Exemplo;
//utilizando o namespace - caminho da funcao/classe
$classe = new Exemplo\Codigo;
//chamando função publica
$t = $classe->minhaFuncao();
//chamando função statica
$j = Exemplo\Codigo::outraFuncao();
?>
Listagem 6: Arquivo namespace.php
<?php
namespace Pacote {
class Codigo {
public function minhaFuncao() {
//conteudo qualquer para o classe.
echo 'teste de namespace ';
}
static function outraFuncao() {
echo ' funcao publica';
}
}
}
?>
Para ver o exemplo rodando, basta acessar através do navegador o arquivo index.php criado. Se você estiver utilizando o exemplo fornecido em anexo e compilação do servidor HTTP através do PHP, utilize: localhost:8080/namespace/.
Não é algo tão fácil de cara, porque estamos acostumados a trabalhar de outra forma há bastante tempo. Mas não é também um bicho de sete cabeças, com o tempo vamos nos acostumar novamente e esperar por outras modificações benéficas.
APLICAÇÃO
Depois de vermos algumas novidades, vamos colocar a mão no teclado? Vamos fazer duas funções, uma para criar um array de 10 posições com números de 0 a 10 e outra para colocar em um array um nome separando o nome através dos índices do array:
Listagem 7: Exemplo prático
<?php
$array1 = ['1','2','3','4'...];
$array2 = ['kalil', 'kelvin'];
?>
Vamos começar criando nossa classe “Funcoes” com namespace Util.
Listagem 8: Arquivo funções.php
<?php
namespace Util {
class Funcoes {
public function arrayNumerico() {
for ($i = 0; $i <= 10; $i++) {
$arr[] = $i;
}
print_r($arr);
echo '| acessando 1 elemento:';
print_r($arr[0]);
}
public function arrayNome($nome) {
$nomes = explode(' ', $nome);
for($i = 0; $i<count($nomes); $i++){
$arr['nome'.$i] = $nomes[$i];
}
print_r($arr);
echo '| acessando 1 elemento:';
print_r($arr['nome0']);
}
}
}
?>
Listagem 9: Arquivo index.php
<?php
include 'funcoes.php';
use Util as Util;
$classe = new Util\Funcoes;
//imprime os números no array
$arr = $classe->arrayNumerico();
//imprime os nomes no array;
$nome = $classe->arrayNome($nomes = 'Site da devMedia artigo sobre novidades php');
?>
Após este exemplo prático e simples, você já tem a habilidade de começar a construir as suas classes dentro do novo padrão, não carregar seu HD instalando programas que gerenciem seu servidor HTTP, afinal, ele está integrado ao PHP agora. Para ficar por dentro de outras modificações existentes nesta versão, acesse: http://www.php.net/manual/en/migration54.new-features.php, nada melhor do que a documentação oficial da linguagem para guia-lo neste caminho.
Espero que tenham gostado. Sugestões, opiniões comentem no artigo, ficarei feliz em responder. Abraços.
Se você está começando no PHP, não deixe de assisitir nossos cursos online.