Blogial

« Post precedente

Post successivo »


Semplice User Manager con il Model View Controller - Model -

Metti al top

Il model è la logica dell'applicazione (spesso chiamata il business layer nelle applicazioni enterprise).

Il suo compito è quello di trasformare semplici dati, in dati che contengono qualche sorta di informazione per poi inviarli alla adeguata view (solitamente tramite il controller).

Nella maggior parte dei casi esso ha al suo interno queries per il database effettuate tramite una classe di astrazione del database (nel ns. caso PDO).

UserModel
Codice php:
abstract class UserModel{
	protected $db= null;
	protected $data= null;
	public function __construct(PDO $db){
		$this->db= $db;
    } 
	abstract protected function setData(); 
}

Il costruttore ha come unico parametro una istanza della classe PDO (aggregation) ed ha al suo interno un metodo dichiarato astratto per forzare le classi figlie ad implementarlo.

Nel file user-settings.php avremo un'unica istanza della classe PDO da utilizzare per tutto lo script:

Codice php:
$db= new PDO(CONN_STRING, DB_USER, DB_PASSWORD);
	$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

Da notare l'utilizzo del metodo setAttribute per la gestione degli errori.

Il metodo setData ha il compito di istanziare tutte quelle classi necessiarie al modulo (composition),

Codice php:
protected function setData(){
		$this->data= new UserData(/* parametri */);
		$this->validator= new UserValidator($this->data);
		$this->mail= new UserMail($this->data);
	}

da notare che la visibilità del metodo deve essere uguale o più debole (in questo caso public) rispetto a quello astatto.

A seconda delle necessità il modello implementerà un metodo o più metodi specifici per il suo compito, ma questo sarà discusso nei prossimi aricoli.

Conclusioni

PDO e' un' estensione in grado di pilotare database di diverso tipo tramite un' unica interfaccia ( o meglio classe ) che con gli stessi metodi opera su mysql, mysql 4.x, sqlite 2.x, sqlite 3.x , PostgreSQL, sqlserver, oracle e chi piu' ne ha piu' ne metta. Segnalo PDO dalla A alla Z a quei lettori che vogliono approfondire la conoscenza di questa utilissima classe.

Nel prossimo articolo parlerò del Controller.

Inserisci il tuo commento

Inserisci il codice che leggi nell'immagine

antispam

Nb.
Devi avere i cookie abilitati per commentare l'articolo.
I commenti saranno soggetti ad approvazione da parte dell'administrator.

Gli articoli in evidenza

Php Trouble Tickets

Metti al top

Script opensource php mysql per la gestione delle richieste degli utenti tramite ticket.

Si tratta di un software gratuito che gira su piattaforme Linux, Windows (Apache).

Permette la completa gestione dei rapporti commerciali, tra voi e i vostri clienti, attraverso il sistema basato sui trouble tickets.

Distribuito sotto licenza MIT ha le seguenti caratteristiche:

  • - Valid css e xhtml strict;
  • - unobtrusive javascript utilizzando il framework jQuery;
  • - multilanguages;
  • - aggiungi/edita/cancella/chiudi/assegna trouble tickets e risposte;
  • - nessuna limitazione sul numero di utenti, amministratori e staff di supporto;
  • - permessi agli operatori, accesso separato utenti;
  • - gruppi di operatori con gestione permessi (CRUD);
  • - illimitate e nested categories;
  • - paging;
  • - moduli di ricerca;
  • - tables sortable;
  • - nessun limite sul numero di TT creabili.

Potete visionare una demo qui.