Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Laravel / Crea y usa Traits en Laravel

Crea y usa Traits en Laravel

Por jc mouse jueves, agosto 22, 2024

¿Qué es un Trait en Laravel?

Los Trait son una forma que laravel tiene para reutilizar el código, son similares a las clases, pero con la diferencia de que no se pueden crear instancias por sí solos, el único objetivo de un Trait es el de agrupar funcionalidades muy específicas y de una manera coherente.

¿Como crear un Trait en Laravel?

Solo a partir de la versión 11 de Laravel se introdujo un comando para la creación de Triait, si se usa una versión anterior, la creación se debe realizar de forma manual, es decir:

Se crea una carpeta Traits dentro la carpeta App, es decir «App\Traits\». Y dentro la carpeta se crean los traits, por ejemplo ExampleTrait.php.

Si usas laravel 11, se puede ejecutar el comando:

php artisan make:trait MateMataTrait

y tenemos:

Ya despues se declara la funcion o funciones que contendra el Trait, por ejemplo:

<?php
namespace App\Traits;

trait MateMataTrait {

    /**
     * Ecuacion de segundo grado
    */
    function ec2do($a, $b, $c) {
        // Calculamos el discriminante
        $discriminante = $b * $b - 4 * $a * $c;
    
        if ($discriminante < 0) {
            return "No hay soluciones reales";
        } elseif ($discriminante == 0) {
            $x = - $b / (2 * $a);
            return "Una solución: x = " . $x;
        } else {
            $x1 = (- $b + sqrt($discriminante)) / (2 * $a);
            $x2 = (- $b - sqrt($discriminante)) / (2 * $a);
            return "Dos soluciones: x1 = " . $x1 . ", x2 = " . $x2;
        }
    }

}

¿Cómo se usa un Trait?

Una vez que ya tenmos definido nuestro trait, elegiremos la clase o clases para importar el trait de la siguiente manera:

<?php
namespace App\Http\Controllers;

use App\Traits\MateMataTrait;

class BarController extends Controller
{
    use MateMataTrait;

    public function index()
    {
        $res = $this->ec2do(1,5,6);
        return view('bar.index', compact('res'));
    }

}

Diferencias entre Trait y Helpers

TraitHelpers
– Reutilización de código dentro de clases: Los Traits son mecanismos para incorporar comportamientos específicos a múltiples clases sin necesidad de herencia múltiple.
– Enfoque orientado a objetos: Se integran directamente en las clases, permitiendo una mayor cohesión entre los métodos del Trait y la clase que lo utiliza.
– Mezcla de características: Puedes «mezclar» múltiples Traits en una sola clase, combinando así diferentes funcionalidades.
– Ideal para: Lógica relacionada con objetos, como validaciones, transformaciones de datos o características comunes a varios modelos.
– Funciones globales: Los Helpers son funciones que se pueden llamar desde cualquier parte de tu aplicación, sin necesidad de instanciar una clase.
– Enfoque funcional: Son útiles para tareas más generales que no están directamente relacionadas con una clase en particular.
– Conveniencia: Simplifican tareas comunes, como la generación de URLs, la manipulación de cadenas, etc.
– Ideal para: Funciones utilitarias, accesos a configuraciones, o cualquier lógica que no esté estrechamente ligada a un objeto.

enjoy!!!

Tags

Artículos similares

El lenguaje de programación para Base de Datos de Google

Mangle es el lenguaje de programación de código abierto desarrollado por el gigante tecnológico Google presentado este a[...]

ANH Abastecimiento: La app gratuita que te dice exactamente dónde cargar tu tanque

La Agencia Nacional de Hidrocarburos (ANH) tras el lanzamiento inicial de su plataforma de consulta de saldos, ha dado u[...]

Desarrollo de juegos con Libgdx y Android Studio

De las pocas herramientas disponibles entre librerías, frameworks, engines, etc para el desarrollo de videojuegos en len[...]

Tesseract OCR: Reconocimiento de caracteres

OCR (Optical Character Recognition) en español, Reconociminto Optico de Caracteres, es el proceso por el cual  se extrae[...]

Añade un PlaceHolder a un JTextField

PlaceHolder: PlaceHolder es un atributo propio de HTML5 y es el texto que aparece dentro de un campo de texto (un JTextF[...]

Conexion Visual Basic a Firebird

En este tutorial nos conectaremos a una base de datos de Firebird utilizando el lenguaje de Visual Basic, el proyecto se[...]