MY_Model per CodeIgniter
MY_Model e’ una classe basata su codeigniter-base-model di Jamie Rumbelow. Quello che ne e’ risultato e’ una classe semplice e leggera che consente di utilizzare i metodi CRUD e i relativi pre e post triggers.
Ho fatto alcune modifiche, principalmente eliminando la gestione di relazioni e validazioni, modificando i meccanismi dei trigger e aggiungendo la possibilita’ creare e aggiornare i record senza dover ripassare la chiave primaria se questa e’ presente nell’ oggetto che viene passato a MY_Model.
Per installarla copia il file “MY_Model.php” in /application/core/ e caricalo manualmente o tramite autoload. Fatto questo e’ necessario che il tuo model estenda MY_Model invece di CI_Model e che al suo interno contenga i riferimenti alla tabella e alla chiave primaria da utilizzare. Di seguito un semplice esempio di un model per la gestione degli utenti.
Il model dell’ esempio si occupa di cifrare la password prima di creare o aggiornare un utente e di aggiungere i ruoli dell’ utente all’ oggetto che viene ritornato dalla classe. Inoltre vengono usati i metodi created_at e updated_at che aggiornano i campi created_at e updated_at all’ interno della tabella, quindi se decidi di usarli assicurati di creare questi campi nella tabella. Questi due metodi sono presenti nativamente in MY_Model. Se hai dei metodi che usi spesso su piu’ tabelle, puoi definirli in fondo a MY_Model, in modo da averli disponibili senza doverli riscrivere ogni volta. Ad esempio potresti voler salvare chi crea o aggiorna un record e creare quindi i metodi created_by e updated_by.
Per lanciare i tuoi triggers, dopo aver creato i metodi, aggiungili all’ array corretto in funzione di quando vuoi che vengano lanciati, avendo cura di prendere e restituire l’ argomento corretto, la chiave primaria per i trigger legati all’ eliminazione, l’ intero record per gli altri. Di seguito gli eventi e i metodi disponibili:
Il progetto e eventuali aggiornamenti sono disponibili su GitHub.