Cum structurezi un proiect Laravel care crește sănătos
Un proiect Laravel care ajunge la 50.000 de linii fără să devină un coșmar are câteva decizii de arhitectură luate devreme.
Laravel te lasă să pui totul în controllere. Merge — până la un punct. Iată structura care ține pe termen lung.
Controllere subțiri
Un controller primește requestul, cheamă un serviciu, întoarce un răspuns. Fără logică de business, fără query-uri complexe direct în el.
Servicii pentru logica de business
O clasă per caz de utilizare important (ex: PublishArticle, ProcessPayment). Ușor de testat, ușor de reutilizat din comenzi sau job-uri.
Form Requests pentru validare
Regulile de validare stau în clase dedicate, nu în controller. Requestul devine documentația a ce acceptă endpointul.
Model events cu grijă
Un saving care generează un slug e ok. Un saved care trimite emailuri și apelează API-uri externe ascunde efecte și îngreunează testele. Preferă evenimente explicite.
Policies pentru autorizare
„Poate userul ăsta să editeze articolul ăsta?” — răspunsul stă într-o Policy, nu în zece if-uri împrăștiate.
Job-uri pentru orice e lent
Trimitere de email, procesare de imagini, apeluri către servicii externe — toate pe coadă. Requestul HTTP rămâne rapid.
Foldere pe domenii, nu pe tip
La proiecte mari, grupează codul pe zone de business (Billing, Content, Academy) în loc de un munte de fișiere în app/Models.
Autor
GabrielDevDeveloper și fondator INONLINE. Scrie despre web development, AI aplicat și cum construiești produse digitale care aduc bani.