Saltar al contenido
Desarrollo web

¿Cómo organizáis un proyecto Laravel cuando empieza a crecer?

Ismael Catalá Gil60

Llega un momento en todo proyecto Laravel en el que app/Models tiene cuarenta archivos y los controladores han engordado sin que nadie lo decidiera.

Yo he pasado por varias etapas:

  1. Todo en controladores. Funciona hasta que no funciona.
  2. Service classes. Mejor, pero acabas con un UserService de mil líneas que es un cajón de sastre.
  3. Acciones de un solo propósito. Una clase, un método handle(), una cosa. Es lo que uso ahora.
final class PublishPost
{
    public function handle(Post $post): Post
    {
        $post->update(['published_at' => now()]);
        PostPublished::dispatch($post);
 
        return $post;
    }
}

Lo que más me ha ayudado no es la estructura en sí, sino la regla: si no sabes dónde poner algo, es que la clase que buscas todavía no existe.

¿Vosotros cómo lo lleváis? Me interesa especialmente quien haya probado modularizar por dominio en un monolito, porque yo nunca acabo de verlo claro.

Todavía sin respuestas. Sé el primero.