Creiamo il blog – parte 1

Iniziamo a vedere la creazione del nostro blog.

La struttura delle tabelle

Non abbiamo particolari necessità per i campi da gestire e quindi per il momento andremo a definire i classici titolo, corpo dell’articolo, categoria (una singola categoria per le nostre esigenze è sufficiente) e copertina.

Aggiungiamo però anche dei campi per identificare l’autore, la data di creazione e di modifica e lo slug del post.

Per quanto riguarda le categorie, sarà sufficiente definire nome ed ordine.

Gestiamo delle chiavi dalla tabella del post a quella delle categorie e degli utenti (presente di default dopo l’installazione dell’advanced template).

Da questo link è possibile scaricare il file sql con la struttura delle tabelle appena descritte.

La generazione del codice

Prima abbiamo abilitato Gii, un tool che Yii2 ci mette a disposizione per generare in modo veloce il nostro codice. Il codice generato da questo tool è funzionante al 100%, ma ovviamente richiede il nostro intervento per la personalizzazione di alcuni aspetti.

Procediamo aprendo il tool aprendo l’url backend/gii.

La generazione dei modelli (Model Generator)

Come prima cosa dobbiamo generare i modelli per le tabelle user, post e post_category.

Il campo Table Name ci aiuta con l’autocompletamento a mettere il nome della tabella di riferimento. Ad esempio, per generare il modello dei post inseriamo il nome sg15_post.

Modifichiamo il valore autogenerato per Model Class da Sg15Post a Post e selezioniamo Use Table Prefix (che abbiamo impostato nel file di configurazione), Generate Relations (che abbiamo impostato tramite le FOREIGN KEY nel nostro db) e Use Schema Name.

Infine impostiamo il Namespace al valore backend\models per evitare successivi errori in generazione delle CRUD (in caso si lasci il valore di default app\models Gii ci tornerà dopo l’errore Class ‘backend\models\Post’ does not exist or has syntax error.).

Facciamo click su Preview e poi su Generate ed ammiriamo il nostro modello in tutto il suo splendore!

Ripetiamo il tutto per la tabella user e post_category.

La generazione delle CRUD (CRUD Generator)

Andiamo adesso a generare le funzionalità C(reate)R(ead)U(pdate)D(elete) per i nostri modelli appena generati.

Impostiamo, mantendo l’esempio del post, i valori nel seguente modo

Model Class backend\models\Post (l’url del modello precedentemente generato)

Search Model Class backend\models\PostSearch (l’url del modello per la ricerca che verrà generato in questa fase)

Controller Class backend\controllers\PostController (l’url del controller che verrà generato in questa fase)

View Path @backend/views/post (l’url della cartella dove verrano generati i vari template).

Di nuovo Preview e Generate e Gii ci crea tutto il codice base per gestire i nostri post!

 

A questo punto abbiamo una prima bozza delle funzionalità che possiamo controllare per esempio dall’url backend/post.

Nella prossima puntata andremo a rendere un pò più user friendly l’interfaccia dei post