Controllers
Documentazione di riferimento: Laravel Controllers
Nel Framework Laravel il controller è il punto dove vengono raccolti gli input, viene elaborata la logica applicativa e quindi viene fornita una risposta.
Di solito c'è un legame stretto tra un controller ed una risorsa su database, infatti di default i nostri controller mettono a disposizioni i seguenti metodi:
configuration: Datatables Configurationindex: elenco risorseshow: dettaglio risorsastore: creazione risorsaupdate: aggiornamento risorsadestroy: cancellazione risorsa
E' fondamentale nei controller cercare di modularizzare il più possibile il codice e spostarlo in classi apposite così da rendere il controller snello e di facile lettura. Esempio:
- Logica di autorizzazione: Request + Policy
- Validazione degli input: Request + Validation
- Logica applicazione: Models oppure Services
- Decorazione della risposta: Resource
Nella maggior parte dei casi i controller da noi utilizzati sono creati automaticamente dal comando weconstudio:model:init.
Spesso utilizziamo api di risorse innestate, esempio:
GET categories/{category}/productsin questo caso è preferibile creare un controller specifico, esempio CategoryProductController, che gestirà la richiesta. In questo modo lasciamo libero il classico ProductController che potrebbe avere logiche differenti.
Controller Innestati
Per generarli possiamo utilizzare il comando:
sail artisan weconstudio:model:init products --parent=categoriesMaggiori informazioni qui weconstudio:model:init.