Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Il Model: le classi dati

Le classi per gestire le tabelle dell'applicazione: classi personalizzabili e classi peer
Le classi per gestire le tabelle dell'applicazione: classi personalizzabili e classi peer
Link copiato negli appunti

Le classi di base vengono generate automaticamente ogni volta che si lancia il comando

symfony propel:build-model

Symfony crea in maniera automatica tutte le classi necessarie per mappare la base dati e quindi, seppur contengano gli elementi essenziali per l'astrazione delle tabelle del database, non possono essere personalizzate in quanto si perderebbero tutte le modifiche introdotte quando, per qualsiasi motivo, siamo costretti a rigenerare il model (ad esempio per l'aggiunta di una colonna di una tabella).

La tabella seguente riporta tutte le classi generate per l'esempio preso in considerazione nella lezione precedente.

Tipo di Classe Nome Directory
Classe di base BaseTipoLibro.php
BaseTipoLibroPeer.php
BaseLibro.php
BaseLibroPeer.php
libmodelom
Classi dati personalizzabili TipoLibro.php
TipoLibroPeer.php
Libro.php
LibroPeer.php
libmodel

Le classi dati personalizzabili, che ereditano dalle classi di dati, servono proprio per aggiungere elementi caratteristici dell'applicazione che stiamo realizzando e che non possono essere generati automaticamente da Symfony. Queste classi non vengono rigenerate quando si lancia il comando per costruire il model e dunque tutte le personalizzazioni non vengono perse.

Classi Peer

Alcune classi sono differenti e si chiamano classi peer. Le classi "normali" contengono dei metodi per lavorare sulle singole colonne delle tabelle. Ad esempio, per avere il titolo dei libri possiamo scrivere il codice riportato nel Listato 13.

Listato 13: Recupero del titolo di un libro utilizzando i metodi della classe Libro.php

$libro = new Libro();
$titolo = $libro->getTitolo();

Le classi peer invece contengono metodi statici attraverso i quali è possibile accedere alle tabelle del database. Ad esempio possiamo ottenere un determinato libro a partire dal valore della sua primary key scrivendo il codice riportato nel listato 14.

Listato 14: Recupero di un libro utilizzando i metodi della classe LibroPeer.php

$libri = LibroPeer::retrieveByPK(1);

Le classi dati generate da Symfony in maniera automatica consentono di effettuare le operazioni più comuni sul database quali l'inserimento, il recupero, la modifica e l'eliminazione dei dati specificando anche eventuali condizioni. I metodi da utilizzare per ogni tipo di operazione sono facilmente individuabili all'interno delle classi stesse e, comunque, hanno dei nomi piuttosto espliciti per cui non ci soffermeremo su questo argomento rimandando il lettore alla guida ufficiale di Symfony qualora ne avesse bisogno.


Ti consigliamo anche