Skip to content

Instantly share code, notes, and snippets.

@alejandrofloresm
Created March 10, 2023 02:41
Show Gist options
  • Save alejandrofloresm/0d11be02f0a901cb033ddfd1d95f5c22 to your computer and use it in GitHub Desktop.
Save alejandrofloresm/0d11be02f0a901cb033ddfd1d95f5c22 to your computer and use it in GitHub Desktop.
Ejemplo de principio DRY

Supongamos que tenemos una aplicación Laravel que tiene varios controladores y vistas. En algunas de estas vistas, necesitamos mostrar un formulario para que el usuario ingrese su información de contacto. En lugar de escribir el código HTML para el formulario en cada vista, podemos crear una plantilla Blade que contenga el formulario y reutilizarla en todas las vistas que necesiten mostrar el formulario. De esta manera, estamos siguiendo el principio DRY, ya que estamos evitando la duplicación de código.

Aquí está el código para la plantilla Blade que contiene el formulario:

<!-- resources/views/partials/contact-form.blade.php -->
<form action="{{ route('contact.store') }}" method="POST">
    @csrf

    <div class="form-group">
        <label for="name">Nombre:</label>
        <input type="text" id="name" name="name" value="{{ old('name') }}" class="form-control">
    </div>

    <div class="form-group">
        <label for="email">Correo electrónico:</label>
        <input type="email" id="email" name="email" value="{{ old('email') }}" class="form-control">
    </div>

    <div class="form-group">
        <label for="message">Mensaje:</label>
        <textarea id="message" name="message" rows="5" class="form-control">{{ old('message') }}</textarea>
    </div>

    <button type="submit" class="btn btn-primary">Enviar</button>
</form>

Luego, en cualquier vista que necesite mostrar el formulario de contacto, podemos incluir la plantilla Blade utilizando la directiva @include de Blade:

<!-- resources/views/contact.blade.php -->
@extends('layouts.app')

@section('content')
    <h1>Contacto</h1>

    @include('partials.contact-form')
@endsection

De esta manera, estamos evitando la duplicación de código y haciendo que nuestra aplicación sea más modular y fácil de mantener. Además, si necesitamos realizar cambios en el formulario, solo necesitamos hacerlo en un lugar (la plantilla Blade), en lugar de tener que buscar y modificar múltiples vistas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment