6 truques do PHP que você deveria conhecer
Neste post, você aprenderá 6 dicas rápidas para melhorar seu código, especialmente aquele código legado.
Ao começar no mundo do desenvolvimento, muitas vezes não damos a devida atenção a conhecimentos mais avançados sobre as tecnologias com as quais trabalhamos, seja pela correria do dia a dia ou por inúmeros outros motivos. Vamos começar!
Desenvolvendo funções mais flexíveis usando Closure
A Closure é um recurso do PHP que torna as funções anônimas mais poderosas e flexíveis.
Funções anônimas são aquelas que podem ser atribuídas a variáveis, passadas como argumentos para outras funções ou definidas dinamicamente. A classe Closure abrange essas funções e permite o uso de variáveis externas dentro delas.
$olaMundo = function ($nome) {
echo "Olá, $nome";
};
$olaMundo("Pedrinho"); // Olá, Pedrinho
// Closure Binding
$olaMundo = function () use ($nome) {
echo "Olá, $nome";
};
$nome = "Pedrinho";
$olaMundo(); // Olá, Pedrinho
Otimizando uso de memória com Generators
As funções Generators são essenciais para otimizar o uso de memória quando lidamos com grandes conjuntos de dados. Em vez de gerar todos os dados de uma vez, elas os produzem conforme a necessidade, economizando recursos.
function getNumeros () {
for ($i = 0; $i < 1000; $i++) {
yield $i;
};
};
foreach (getNumeros() as $numero) {
echo $numero . " ";
};
Simplificando arrays complexos com array_reduce
array_reduce tem como objetivo reduzir o array a um único valor utilizando alguma operação aritmética (+, -, %, *, ...) para tal.
$numeros = [1,2,3,4,5];
$soma = array_reduce($numeros, fn($carry, $item) => $carry + $item, 0);
echo $soma; // 15
Aqui, temos 3 parâmetros. O primeiro é o array original que servirá como base para a operação aritmética, o segundo é a função que irá processar o cálculo, e o terceiro (opcional) servirá como valor inicial da operação.
Uso eficiente de SPL (lib padrão do PHP)
A SPL oferece diversas classes e interfaces úteis já integradas ao PHP. Um exemplo é o SplFixedArray, que otimiza o uso de memória ao trabalhar com arrays de tamanho fixo.
$array = new SplFixedArray(10);
$array[0] = 1;
echo $array[0]; // 1
Usar Intl - funções de internacionalização
A extensão Intl é fundamental no desenvolvimento de aplicações multilíngues. Ela oferece classes como NumberFormatter, MessageFormatter e Locale, que facilitam a formatação de números e mensagens de acordo com as convenções de diferentes países.
$numeroFormatado = new NumberFormatter('pt_BR', NumberFormatter::CURRENCY);
echo $numeroFormatado->formatCurrency(1278.98, 'BRL'); // R$1.278,98
Trabalhar com funções stream para arquivos grandes
Funções de stream como fopen, fread, fwrite são importantes para usar a memória de maneira eficaz ao trabalhar com arquivos grandes.
- fopen abre o arquivo
- fread lê o arquivo
- fwrite permite editar o arquivo.
$arquivo = fopen("arquivo.txt", "r");
while (($linha = fgets($file)) !== false) {
echo $linha;
}
fclose($arquivo);
Essas são apenas algumas das funcionalidades incríveis que o PHP oferece. Claro, existem muitos outros recursos, mas escolhi essas 6 para manter o conteúdo direto e útil. Com essas dicas, você já conseguirá melhorar muito seus projetos. Espero que tenha gostado das sugestões e até a próxima!