Saltar al contenido

Según la Wikipedia el patrón Facade (Fachada) es un tipo de patrón de diseño estructural que viene motivado por la necesidad de estructurar un entorno de programación y reducir su complejidad con la división en subsistemas, minimizando las comunicaciones y dependencias entre estos.

Casos de uso

Se aplicará el patrón Facade cuando se necesite proporcionar una interfaz simple para un subsistema complejo, o cuando se quiera estructurar varios subsistemas en capas, ya que las fachadas serían el punto de entrada a cada nivel. Otro escenario proclive para su aplicación surge de la necesidad de desacoplar un sistema de sus clientes y de otros subsistemas, haciéndolo más independiente, portable y reutilizable (esto es, reduciendo dependencias entre los subsistemas y los clientes).

Crear Facades en Laravel paso a paso

Lo primero que necesitamos es crear una clase que contenga la lógica que nuestra fachada necesita, en este caso vamos el siguiente archivo (fíjate en los namespaces).

<?php
namespace App\Cursosdesarrolloweb;

/**
 * Class Cursosdesarrolloweb
 * @package App\Cursosdesarrolloweb
 */
class Cursosdesarrolloweb {
    /**
     * @return string
     */
    public static function test(): string
    {
        return "Test Facade Cursosdesarrolloweb";
    }
}

Ahora vamos a crear un ServiceProvider para registrar nuestra lógica.

php artisan make:provider CursosdesarrollowebServiceProvider
<?php

namespace App\Providers;

use App\Cursosdesarrolloweb\Cursosdesarrolloweb;
use Illuminate\Support\ServiceProvider;

/**
 * Class CursosdesarrollowebServiceProvider
 * @package App\Providers
 */
class CursosdesarrollowebServiceProvider extends ServiceProvider
{
    public $bindings = [
        "cursosdesarrolloweb" => Cursosdesarrolloweb::class
    ];
    
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Es importante que te fijes la key de la propiedad bindings.

Ahora registramos nuestro ServiceProvider en el archivo config/app.php.

<?php

'providers' => [

    /*
     * Laravel Framework Service Providers...
     */

    // more providers here

    /*
     * Package Service Providers...
     */

    // more providers here

    /*
     * Application Service Providers...
     */
    
    // more providers here

    CursosdesarrollowebServiceProvider::class,

],

Crea una Facade que nos ofrezca acceso a nuestra clase Cursosdesarrolloweb.

<?php
namespace App\Cursosdesarrolloweb;

use Illuminate\Support\Facades\Facade;

/**
 * Class CursosdesarrollowebFacade
 * @package App\Cursosdesarrolloweb
 */
class CursosdesarrollowebFacade extends Facade {
    /**
     * @return string
     */
    public static function getFacadeAccessor(): string
    {
        return "cursosdesarrolloweb";
    }
}

Es necesario definir el método estático getFacadeAccessor retornando el nombre que utilizamos más arriba en nuestro provider (bindings).

Registra la Facade en el archivo config/app.php.

<?php

'aliases' => [

    // more facades here
  
    'Cursosdesarrolloweb' => CursosdesarrollowebFacade::class,
],

La clave Cursosdesarrolloweb es el nombre a través del que podemos acceder a nuestra clase Cursosdesarrolloweb, fíjate:

<?php

use Illuminate\Support\Facades\Route;

Route::get('/cursosdesarrolloweb', function() {
    echo Cursosdesarrolloweb::test(); // Test Facade Cursosdesarrolloweb
});

¡BRUTAL!

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje