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 / Que es una Interface y como se usa en Laravel 11

Que es una Interface y como se usa en Laravel 11

Por jc mouse martes, agosto 6, 2024

Una Interface en PHP es como un molde que define la estructura y el comportamiento que deben tener las clases que las implementen.

¿Para qué nos sirven las interfaces en Laravel 11?

  • Definir un conjunto de métodos (funciones) que una clase debe implementar.
  • Permiten crear clases más genéricas y reutilizables, ya que cualquier clase que implemente una interface puede ser utilizada en cualquier lugar donde se espere esa interface aumentando la reutilización de código.
  • Nos ayudan a estructurar el código de manera más clara y modular, facilitando su comprensión y mantenimiento.

Interfaces en Laravel

Para crear una Interface, debemos utilizar el comando:

php artisan make:interface {NombreInterface}

Por ejemplo, para definir una nueva interface llamada «Foo«, la cual debe colocarse en la carpeta «Interfaces«, ejecutamos el comando:

php artisan make:interface Interfaces/FooInterface

A continuación en nuestra Interface creada declaramos el o los metodos necesarios.

<?php

namespace App\Interfaces;

interface FooInterface
{
    public function fibonacci($n);

    //{mas métodos...}
}

Implementado la Interface

Ahora creamos la clase que implementara nuestra interface, ejecutamos el comando:

php artisan make:class Services/FooService

Para implementar una interface, se utiliza el operador «implements«. Todos los métodos en una interface deben ser implementados dentro de la clase; caso contrario se generara un error. Actualizamos nuestra clase Service con el siguiente codigo.

<?php

namespace App\Services;

use App\Interfaces\FooInterface;

class FooService implements FooInterface
{    
    public function fibonacci($n){ 
        $fibonacci = array(0, 1);
        for ($i = 2; $i <= $n; $i++) {
            $fibonacci[$i] = $fibonacci[$i-1] + $fibonacci[$i-2];
        }
        return $fibonacci;
    }

}

A continuación creamos el controlador de la forma:

php artisan make:controller FooController

Y completamos con el siguiente codigo:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Services\FooService;

class FooController extends Controller
{

    protected $fooService;    
    
    public function __construct(FooService $fooService) {
        $this->fooService = $fooService;
    }
    
    public function index(){            
        return response()->json(['data' => $this->fooService->fibonacci(11) ]);
    }

}

Para finalizar definimos la ruta para llamar al controlador:

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\FooController;
  
Route::get('/fibonacci', [FooController::class, 'index']);

Finalmente tenemos la salida:

Tags

Artículos similares

Crear Helpers en Laravel 10

El archuivo helpers.php en Laravel contiene funciones globales de PHP los cuales se pueden utilizar en cualquier parte d[...]

Crea un plugin WP con panel de administracion

En este post crearemos un plugin para el CMS WordPress el cual comprende el plugin en si, un panel de administración y e[...]

Google Open Source: Código Abierto +2000 proyectos

Google abre las puertas de Google Open Source un nuevo sitio web que une todos sus proyectos de «Código Abierto» que ha[...]

Crea tu blog con el patrón MVC y php

En post anteriores se vio algunos conceptos y ejemplos de lo que es el patrón MVC,  dando un paso más adelante ahora con[...]

Autenticación en php con MySql y POO

Autenticación en una pagina web es el proceso de confirmar que un usuario es quien dice ser, asi de simple. En el siguie[...]

Compartir conexión de base de datos

Cuando utilizamos aplicaciones web con conexión a base de datos MYSQL, se suele crear una clase que gestione la interacc[...]