Helpers

Funções auxiliares para ajudar na sua produtividade.

Introdução

As funções auxiliadoras (ou helpers) no Hello Framework são recursos específicos que visam auxiliar na construção da lógica de algoritmos, sem a necessidade de instanciar uma classe de um determinado namespace. Essas funções auxiliadoras nativas estão disponíveis em todo o ciclo de vida da aplicação.

Diferentemente de outros frameworks conhecidos, o Hello Framework implementa um conjunto menor de funções auxiliadoras, focando em disponibilizar apenas o necessário. Isso garante uma abordagem mais enxuta e direcionada para o desenvolvimento.

Caso seja necessário criar funções auxiliadoras personalizadas adicionais, você pode fazer isso por meio de um registro de serviços, expandindo assim a funcionalidade básica disponível.

No Hello Framework, as funções auxiliadoras também são conhecidas como Helpers, seguindo o padrão comum adotado em vários outros frameworks e bibliotecas.

string url(string $path = '/')

Esse helper recebe um caminho de rota e retorna a URL completa da aplicação considerando o HOST e protocolo no servidor ao qual a aplicação está sendo executada.

string | null route(string $name, array $params = [] )

Similar ao helper "url" com a diferença que esse helper é para rotas nomeadas. Caso a rota nomeada tenha parâmetros, é possível informar um array associativo com os parâmetros, onde a chave é o nome do parâmetro de rota e o valor é o dado que será passado para URI de rota que será retornado. Caso o nome de rota informado não exista, será retornado o valor "null".

mixed env(string $name,mixed $default = null)

Esse helper retorna o valor de uma variável definida no arquivo de configuração ".env". Caso a variável não exista no arquivo de configuração, será retornado o segundo parâmetro do helper que é opcional.

string view(string $view,$scope =[])

Esse helper retorna uma view renderizada para o controlador. O primeiro parametro é o nome da view e o segundo parâmetro opcional é um array associativo com os dados que serão transmitidos para dentro da view e serão renderizados juntos.

string asset(string $file)

Esse helper retornar o caminho completo de um determinado arquivo da pasta "/public" ou "public_html".

array | mixed request(string $name = null)

Esse helper retorna todos os dados fornecidos no corpo da requisição, de forma similar aos arrays $_POST e $_GET do PHP. No entanto, ele é capaz de lidar com todos os verbos HTTP. Para obter apenas um valor específico de um determinado campo, basta informar o nome (chave ou o identificador do campo) desejado como parâmetro da helper. Dessa forma, você terá acesso direto ao valor desejado, simplificando a manipulação dos dados da requisição.

object service(string $name_service)

A função auxiliar service desempenha um papel importante ao retornar a instância de uma classe de serviço que foi registrada e propagada por uma classe derivada da classe pai ServiceProvider, que por sua vez foi registrada como um serviço no sistema. Essa função permite acessar facilmente os métodos públicos de qualquer serviço previamente registrado

string secret(string $password)

A função auxiliadora secret realiza a criptografia de uma string do tipo senha utilizando o algoritmo de "salt de senha" em conjunto com a chave de aplicativo definida no arquivo de configuração .env através da variável APP_KEY. O resultado dessa criptografia é um valor criptografado. No entanto, é importante notar que, se o valor da chave for alterado, as informações de senhas previamente armazenadas serão consideradas diferentes e, consequentemente, serão consideradas inválidas.

string get_ip()

A função auxiliar get_ip retorna o endereço IP do usuário cliente atual. Essa função pode ser útil para obter o IP do visitante de um site ou aplicativo web. Ao chamar a função get_ip, ela retornará o IP do cliente que está realizando a requisição ao servidor. Isso pode ser útil para fins de registro, rastreamento ou qualquer outra funcionalidade que requeira o conhecimento do IP do usuário.

void redirect(string $route)

A função auxiliadora redirect realiza o redirecionamento imediato do usuário para outra rota utilizando o método GET. Essa função é útil para direcionar o usuário para uma página específica após a execução de determinada ação. Ao chamar a função redirect e fornecer a rota desejada como parâmetro, o usuário será redirecionado para essa rota, utilizando o método GET para realizar a requisição. Isso permite uma navegação fluída e direcionada dentro de um aplicativo ou site.

bool auth(string $role = null)

A função auxiliadora auth é utilizada para verificar se um usuário está logado. Ela retorna o método estático check() da classe Auth. Essa função possui um parâmetro opcional chamado $role, que permite verificar se o usuário está logado e se o seu papel (role) corresponde ao valor informado no parâmetro da função. Caso o parâmetro $role seja omitido, a função apenas verifica se o usuário está autenticado, independentemente do papel registrado no sistema.

Em resumo, a função auth tem a seguinte finalidade:

  • Verificar se o usuário está logado.

  • Opcionalmente, verificar se o papel (role) do usuário corresponde ao valor informado no parâmetro $role.

  • Retornar true se o usuário estiver autenticado e, se aplicável, tiver o papel correto.

  • Retornar false caso contrário.

Essa função é útil para controlar o acesso a determinadas partes do sistema, verificando se o usuário tem permissão para realizar determinadas ações com base no seu papel registrado.

object session(array $new_session = null)

A função auxiliar session fornece uma instância da classe: Session de forma global. O método aceita um parâmetro opcional que é um array associativo, onde as chaves representam o nome da sessão e os valores são os valores a serem armazenados na sessão.

Funções auxliadoras de estilização

string rclass(array $classes)

Essa função, quando chamada, recebe um array que contém pares chave-valor, onde a chave representa o nome da classe CSS e o valor (booleano) indica se a classe deve ser incluída ou não. A função cria uma string formatada no estilo "class='classe1 classe2 ...'", que pode ser usada para atribuir essas classes a um elemento HTML. Geralmente essa função é utilizada dentro de arquivos de visualização do VH para oferecer renderização condicional e personalizada de classes de estilos.

<h1 {!rclass([
  'text-danger'=>true,
  'shadow'=>true,
  'bg-primary',
  'pm'=>false
])!}>Estilo 1</h1>

A saída acima retornará o seguinte valor:

<h1 class="text-danger shadow bg-primary">Estilo 1</h1>

string rstyle(array $styles)

Similar à função "rclass", a função "rstyle" possui o mesmo comportamento, porém, em vez de retornar um atributo de classe, ela retornará um atributo de estilo com as propriedades definidas de forma condicional.

{php}
    $isActive = true;
{/php}
 
<span {!rstyle([
    'background-color: red',
    'font-weight: bold' => $isActive,
])!}></span>
<span style="background-color: red; font-weight: bold;"></span>

Funções de diretórios

string base_path()

Retorna o caminho completo para o diretório "root" ou "raiz" do aplicativo.

string public_path()

Retorna o caminho completo para o diretório "public" do aplicativo.

string storage_path()

Retorna o caminho completo para o diretório "storage" do aplicativo.

string config_path()

Retorna o caminho completo para o diretório "config" do aplicativo.

string resource_path()

Retorna o caminho completo para o diretório "resources" do aplicativo.

bool dir_delete(string $dir)

A função auxiliadora dir_delete é responsável por excluir um diretório específico de forma recursiva. Isso significa que todos os itens contidos dentro do diretório, como subpastas e arquivos, também serão excluídos.

Essa função é útil quando você precisa remover completamente um diretório e todos os seus conteúdos de maneira eficiente. Ela percorre de forma recursiva o diretório alvo, excluindo cada item individualmente até que todos sejam removidos.

É importante ter cuidado ao utilizar essa função, pois a exclusão é permanente e irreversível. Portanto, é recomendado utilizá-la com cautela e verificar se o diretório e seu conteúdo são realmente os desejados para exclusão.

Last updated