La forza del framework Yii2 è la generazione automatica di tutto il codice standard che riguarda il Modello e il CRUD (Create, Read, Update, Delete). Nonostante questo sia di grandissimo aiuto, il codice generato non si adatta perfettamente alle mie esigenze. Per questo ho provato a creare un Modello e un CRUD personalizzati senza modificare quelli standard che sarebbero sovrascritti ad ogni aggiornamento.

Come creare un CRUD personalizzato per Yii2

Per creare un CRUD personalizzato ho creato una cartella “custom\templates\crud\default” e vi ho copiato “vendor\yiisoft\yii2-gii\generators\crud\default”.
Ho fatto tutte le modifiche necessarie ai file nella cartella “custom\templates\crud\default\view\ per adattarli alle mie esigenze.

Ho modificato la configurazione, per il template base, in config\web.php

```
$config['modules']['gii'] = [
 'class' => 'yii\gii\Module',
 'allowedIPs' => ['127.0.0.1'],
 'generators' => [
 'crud' => [ 
 'class' => 'yii\gii\generators\crud\Generator', 
 'templates' => [ 
 'myModel' => '@app/custom/templates/crud/default', 
 ] ] 
 ],
]; 
```

Adesso quando genero il CRUD posso scegliere, nel campo in fondo “Code Template“, se utilizzare quello di default oppure quello personalizzato (myModel).

Naturalmente lo stesso processo può essere utilizzato per personalizzare la generazione di qualsiasi entità già prevista nella generazione di codice di Yii2, come ad esempio il Model (modello), modificando solamente i percorsi del codice e delle classi di riferimento.

Se hai bisogno di aiuto per costruire modelli e CRUD personalizzati per Yii2 o vuoi imparare a farlo, contattami per una consulenza.