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

JSON Web Tokens: Teoría y práctica

En este post aprenderemos lo que es un JSON Web Token, como crear nuestro propio token de acceso y como usarlo en un Ser[...]

The Polite Type: La fuente tipográfica políticamente correcta

«Las palabras que elegimos dan forma a nuestra realidad. La Fuente Educada (Polite Type) es una fuente de código abierto[...]

Validación XML con Esquema XSD en PHP

En este post realizaremos un pequeño ejemplo de validación de archivos XML utilizando el esquema XSD y el lenguaje PHP ([...]

Distribución de escaños con el método D’Hondt caso práctico (Bolivia)

El sistema D’Hondt creado por el jurista belga Victor d’Hondt en 1878, es un método de promedio mayor para a[...]

Conexión a MySQL con PDO

¿Que es PDO? PHP Data Objects (o PDO) es una extensión que provee una capa de abstracción de acceso a datos para PHP 5,[...]

Controla excepciones con abort_if() y abort_unless()

Laravel tiene varias formas de tratar con las excepciones de nuetros proyectos, uno de ellos es el helper «abort()», est[...]