Tecnologia
Criando helpers no Laravel
15/01/2021 às 13:20 Bruno Couty
No Laravel, "helpers" são, basicamente, funções comuns que ajudam a obter resultados de maneira rápida, apenas chamando funções e passando um ou mais parâmetros.
Fazemos uso deste tipo de ferramenta para criar funções úteis e que podem ser repetitivas dentro de algum tipo de rotina ou situação específica. Um exemplo comum de helpers é o dd($var).
No exemplo abaixo, criaremos helpers dentro do diretório App, então, sugiro a criação de uma pasta "Helpers", dentro de App.
Em "Helpers", crie um arquivo, por exemplo: math.php
Aqui, servirá para abrigar funções matemáticas.
O conteúdo do arquivo deve ser algo como:
<?php
if (!function_exists("validate_tfa")) {
function validate_tfa(string $token)
{
$token = trim(str_replace(' ', '', $token));
$user = \Illuminate\Support\Facades\Auth::user();
if (Google2FA::verifyKey($user->tfa_code, $token)) {
return true;
}
return false;
}
}
if (!function_exists("verify_tfa_status")) {
function verify_tfa_status()
{
$user = \Illuminate\Support\Facades\Auth::user();
if (!$user->tfa_active) {
return false;
}
return true;
}
}
E assim, podem ser criadas tantas funções quanto desejadas.
Após criado o arquivo, por convenção, podemos criar, ainda dentro da pasta "Helpers", um arquivo chamado "helpers.php". Dentro deste arquivo, adicionamos um include para todos os arquivos com funções que houverem dentro da pasta "Helpers" (como math.php, strings.php, tests.php...).
<?php
include __DIR__ . "/twoFactorAuth.php";
Por fim, registramos o arquivo "mestre", "helpers.php" dentro do nosso composer, dentro de autoload:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Helpers/helpers.php"
]
},
Execute um "composer dump-autoload". Pronto, agora, basta chamar, em qualquer lugar da sua aplicação, pelas funções criadas (ex: verify_tfa_status()).