Cree funciones auxiliares/clases personalizadas en Laravel - helpers

- Andrés Cruz

Las funciones auxiliares no son más que funciones comunes que podemos llamar en cualquier parte de nuestra aplicación. Laravel viene con una serie de funciones de ayuda integradas realmente útiles; entre las más usadas, tenemos url(), route(), asset(), env(), app(), request(). Puede encontrar la lista completa de estos aquí:

https://laravel.com/docs/master/helpers

Pero como desarrolladores, a veces necesitamos escribir algunas funciones que ayuden a eliminar el código repetitivo y agreguen velocidad a nuestro desarrollo. Así que te mostraré cómo crear clases auxiliares personalizadas y usarlas en proyectos de Laravel.

¿Qué queremos hacer?

En esta aplicación, quiero registrar todas las actividades como notificaciones en una tabla. Cuando inician sesión, cuando comentan, cuando visitan una página, cuando les gusta, publican, siguen y cualquier acción que podamos pensar.

Paso 1: Crear un archivo helper.php en la carpeta de la aplicación laravel.

Los archivos helpers.php a menudo se encuentran en los siguientes lugares:

  • app/Http/helpers.php
  • app/Helpers/helpers.php
  • app/helpers.php

Para esta lección, usaremos app/Helpers/helpers.php.
Paso 2: Escribe tu función en app/Helpers/helpers.php.


<?php
namespace App\Helpers;
use App\Models\Notification;
class NotifyClass
{
  private $data = null;
  public function __construct($data)
  {
    $this->data = $data;
  }
  public function make(): bool
  {
    $notify = Notification::create([
    'user_id' => $this->data['user_id'],
    'type' => $this->data['type'],
    'created_at' => now()
  ]);
  if ($notify)
    return true;
  else
    return false;
  }
}

Lo siguiente que debemos hacer es, aprender a hacer uso de esta clase auxiliar.

En sus controladores, solo tiene que agregar el espacio de nombres y llamarlo.

use App\Helpers\NotifyClass;
//after following a user,
$data = [
         'user' => Auth::user()->id,
         'type' => 'follow'
   ]
(new NotifyClass($data))->make();
//after liking a post,
$data = [
         'user' => Auth::user()->id,
         'type' => 'like'
   ]
(new NotifyClass($data))->make();
//after ordering a product,
$data = [
         'user' => Auth::user()->id,
         'type' => 'order'
   ]
(new NotifyClass($data))->make();
(new NotifyClass($data))->make();

Hay muchas cosas que puedes hacer.

Ahora, podemos llamar a la clase auxiliar de notificación y registrar la acción de un usuario en la base de datos, podemos agregar un "action_id" o "notifiable_id" que podemos usar para guardar la identificación que recibe la acción del usuario. Por ejemplo, un usuario solicita un producto, action_id será el identificador del producto y el tipo será "pedido".

use App\Helpers\NotifyClass;
//after ordering a product,
$data = [
         'user' => Auth::user()->id,
         'type' => 'order'
         'action_id' => 784 //product id
   ]
(new NotifyClass($data))->make();

Se trata de lo que quieres hacer.

Hay varias formas de usar clases auxiliares en laravel. Puede hacer funciones estáticas para un uso básico y como cualquier cosa que quiera usar varias veces de manera genérica.

Hay métodos que requieren que usted cargue automáticamente estas funciones y todo, pero aquí lo simplificamos. Pruébalo y utilízalo en tu próximo proyecto.

https://medium.com/@prevailexcellent/create-custom-helper-functions-classes-in-laravel-8-9-and-use-them-bb4432ea3511

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy