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

Métodos GET y POST en RestFul y JSON

En este post veremos como enviar solicitudes GET y POST a un API RestFul  desde un dispositivo con android. Nuestra apli[...]

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 base de datos Oracle con Laravel

En esta ocasión aprenderemos a conectaros con una base de datos Oracle desde Laravel. Es un tutorial sencillo y cortito,[...]

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[...]

MVC: Modelo, Vista y Controlador en PHP

EL patrón MVC (Model, View, Controller) o Modelo, Vista Controlador, es un tipo de diseño que separa en capas bien defin[...]

Ejecutar scripts de Python en Laravel

Integrar Python en proyectos Laravel puede ser bastante útil para tareas específicas donde Python destaca y PHP se queda[...]