Comprender la interfaz fluida en php para entender los métodos encadenados de Laravel

  • Publicado el 30 mayo, 2025
  • Palabras: 196

Una interfaz fluida en PHP (también conocida como "fluent interface") es una técnica de programación orientada a objetos que permite encadenar llamadas a métodos en una clase para crear un flujo de código más legible y organizado. Cada método en una interfaz fluida devuelve una referencia al propio objeto, lo que facilita la continuidad de la cadena de llamadas.

Comprender la interfaz fluida en php para entender los métodos encadenados de Laravel

#Encadenar métodos en Laravel

Laravel hace uso de métodos encadenados para mostrar una sintáxis más fluida y legible, seguro que habrás visto expresiones del tipo:

 

User::where('is_active', true)->orderBy('name')->get()

 

#¿Qué es un fluent interface (intefaz fluido)?

Una interfaz fluida es un patrón de diseño donde las llamadas a métodos se encadenan para crear instrucciones más legibles, naturales y descriptivas. Normalmente, cada método devuelve la misma instancia (el objeto en sí), lo que permite el encadenamiento.

Por ejemplo, en lugar de escribir:

 

$response = $this->visit('/home');
$response->assertSee('Welcome');

 

Puedes escribir:

 

$this->visit('/home')->assertSee('Welcome');

 

Aquí, visit() devuelve el objeto, por lo que puedes llamar inmediatamente a assertSee().

 

Beneficios de las interfaces fluidas

 

  • Legibilidad mejorada: El código se lee como un conjunto de instrucciones.
  • Reducción de texto repetitivo: No es necesario referenciar repetidamente el objeto.
  • Uso intuitivo: No es necesario recordar tanto el orden de los argumentos.

 

#Cómo implementar una interfaz fluida

Detrás de escena, los métodos devuelven $this para permitir el encadenamiento:

 

public function visit($url)
{
    // perform visit
    return $this;
}

public function assertSee($text)
{
    // perform assertion
    return $this;
}

 

#Ejemplo práctico

Los tests de Laravel utilizan ampliamente interfaces fluidas. Por ejemplo:

 

$this->get('/login')
        ->assertStatus(200)
        ->assertSee('Login');

 

Cada método realiza una acción y devuelve el mismo objeto, lo que permite el encadenamiento.

 

Consideraciones

Las interfaces fluidas pueden ser más difíciles de probar debido al encadenamiento. No todos los métodos deben devolver $this; algunos pueden devolver otros objetos. Utilice interfaces fluidas donde mejoren la claridad y la usabilidad.

Antonio Jenaro

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Artículos relacionados

Patrón Repository: por qué no es tan recomendable
238

Patrón Repository: por qué no es tan recomendable

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión