Ola pessoal
a maioria dos programadores sabem o que é um helper, mas talvez iniciantes não sabem, e nem que é possível criar um.
a lista de helpers que o laravel disponibiliza você pode verificar aqui: helpers
as vezes é necessário criar um helper customizado pois não existe helpers criados para resolver 100% dos problemas.
pensei em demonstrar um exemplo simples e útil ao mesmo tempo, existe uma função do php chamada ucwords
ucwords() deixa o primeiro carácter de cada palavra em letra maiúscula, vejamos o exemplo do manual do php:
<?php $foo = 'hello world!'; $foo = ucwords($foo); // Hello World! $bar = 'HELLO WORLD!'; $bar = ucwords($bar); // HELLO WORLD! $bar = ucwords(strtolower($bar)); // Hello World! ?>
só que se voce tentar usar essa função para nomes completos pode não sair o resultado esperado, confira esse exemplo:
<?php $nome = 'fabyo guimarães de oliveira'; echo ucwords($nome);//Fabyo Guimarães De Oliveira
não ficou muito legal não é mesmo, pois “De” no caso de nome próprio ficaria melhor em minusculo
então vamos criar um helper para resolver esse problema
para criar um helper é muito simples, crie uma pasta dentro de app com o nome de Helpers
criei um arquivo chamado MyHelper.php, você pode dar o nome que quiser.
<?php if (! function_exists('special_ucwords')) { function special_ucwords($string) { $words = explode(' ', strtolower(trim(preg_replace("/s+/", ' ', $string)))); $return[] = ucfirst($words[0]); unset($words[0]); foreach ($words as $word) { if (!preg_match("/^([dn]?[aeiou][s]?|em)$/i", $word)) { $word = ucfirst($word); } $return[] = $word; } return implode(' ', $return); } }
para o laravel reconhecer seu helper você precisa adiciona-lo no composer.json:
"psr-4": { "App\": "app/" }, "files": [ "app/Helpers/MyHelper.php" ]
rode via console o comando:
composer dump
testando:
<?php Route::get('/', function () { return special_ucwords('fabyo guimarães de oliveira'); //Fabyo Guimarães de Oliveira });
perceberam a diferença?
facil não?, agora só voce seguir esse padrão e criar seus próprios helpers
para facilitar ainda mais o entendimento deem uma olhada no arquivo de helpers do laravel:
vendorlaravelframeworksrcIlluminateFoundationhelpers.php
ate a próxima pessoal
Powered by WPeMatico