SimpleOrm è un insieme di classi PHP che permettono di interagire con tabelle e viste di un database sfruttando la programmazione ad oggetti (come il nome lascia presagire siamo di fronte ad un ORM piuttosto semplice).
I punti di forza sono:
1- Astrazione dal database sottostante
2- Tool di generazione delle query
3- Relazione stretta tra tabelle e modelli
4- Risultati delle query iterabili
Astrazione dal database sottostante
E’ possibile operare con qualsiasi tipo database semplicemente avendo cura di usare, o creare se non esistono, il corretto adapter e il corretto resultset.
Tutte le funzionalità di alto livello (modelli, query, …) avranno poi un funzionamento indipendente dalla scelta fatta, senza necessità di subire modifiche dipendenti dal db e da metodi/sintassi di basso livello.
Al momento è già disponibile il supporto a MySQL e MariaDB (tramite le stesse classi).
Tool di generazione delle query
Per avere una vera astrazione dal tipo di database SimpleORM mette a disposizione una classe per la composizione di query tramite una notazione ad oggetti, quindi per le principali funzionalità/sintassi SQL esiste un metodo che permette di configurare i criteri di selezione (anche piuttosto complessi) in modo generale.
Una volta che la query è stata configurata sarà poi compito dell’adapter andare a trasformare il tutto in un comando SQL, permettendo così allo sviluppatore di portare da un db ad un altro l’applicazione senza avere problemi (se non il dover modificare la selezione dell’adapter).
Relazione stretta tra tabelle e modelli
Per ogni tabella/vista che si intende usare va creata una nuova class che estende il modello base, avendo cura di inserire come proprietà pubbliche le colonne presenti su db.
One volta definito il modello si potrà:
– creare un nuovo record
– modificare un record esistente
– cancellare un record
– cancellare record in funzione di una query
– contare il numero di record corrispondenti ad una query
– estrarre i record corrispondenti ad una query
– estrarre il primo record corrispondente ad una query
Risultati delle query iterabili
I risultati restituiti dalle chiamate al metodo find() di un qualsiasi modello sono completamente iterabili tramite foreach e permetto di saltare ad uno specifico risultato tramite una chiamata al metodo seek esposto.
Il progetto può essere trovato qui.