Una Interface en PHP es como un molde que define la estructura y el comportamiento que deben tener las clases que las implementen.
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...} }
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:
En el desarrollo web la elección de un buen editor de texto enriquecido (WYSIWYG) es una decisión crucial que afecta dir[...]
En este post veremos paso a paso como importar registros de archivos *.CSV a una base de datos (MySQL por ejemplo) usand[...]
El sistema D’Hondt creado por el jurista belga Victor d’Hondt en 1878, es un método de promedio mayor para a[...]
NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Sin em[...]
En este post aprenderemos lo que es un JSON Web Token, como crear nuestro propio token de acceso y como usarlo en un Ser[...]
La forma que tiene Laravel en poner una aplicación en Modo Mantenimiento es por consola mediante el comando: Sin embargo[...]