Un DAO per php: ore di lavoro in meno!

29 Aprile 2012Scritto da mario3

Il tool che vi segnalo oggi può essere un buon compromesso per chi realizza web application native php senza l’ausilio di framework o cms. Php DAO consente di generare classi e metodi che permettono di effettuare in maniera semplice determinate operazioni all’interno di un database. Questo tool è più comunemente associato ai generatori di codice.

Utilizzo

Basta seguire questi semplici passi:

  • Scarica l’ultima versione da http://phpdao.com/phpdao-2.6.zip;
  • Decomprimi il file;
  • Imposta i parametri di connessione all’interno del file: templates/class/dao/sql/ConnectionProperty.class.php;
  • Lancia il file generate.php;
  • Fine!

Come funziona?

Altrettanto semplice è il funzionamento che rappresento con un disegno:

Chiaro? Facciamo un esempio pratico:

create table if not exists News(
   ID not null PRIMAY KEY auto_increment,
   titolo varchar(150),
   testo text,
   data date
);

Questa è una semplice tabella che ho chiamato News.

Lancio il generatore DAO (generate.php)
automaticamente nel mio progetto il software crea una cartella (generated/) all’interno del quale rilascia tutte le query possibili per interrogare la tabella, eccone alcune:

class NewsMySqlDAO implements NewsDAO{
	public function load($id){
		$sql = 'SELECT * FROM News WHERE ID = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->setNumber($id);
		return $this->getRow($sqlQuery);
	}

	public function queryAll(){
		$sql = 'SELECT * FROM News';
		$sqlQuery = new SqlQuery($sql);
		return $this->getList($sqlQuery);
	}
	
	public function queryAllOrderBy($orderColumn){
		$sql = 'SELECT * FROM News ORDER BY '.$orderColumn;
		$sqlQuery = new SqlQuery($sql);
		return $this->getList($sqlQuery);
	}
}

Analogamente all’interno della mia applicazione non dovrò far altro che richiamare una di queste funzioni evitando righe di codice inutile e ore di lavoro!

Esempio di inserimento:

$newsSql = new NewsMySqlDAO();

$news->titolo = $_POST['titolo'];
$news->testo = $_POST['testo'];
$news->data = date('Y-m-d');

$newsSql->insert($news);

Esempio di eliminazione record

$newsSql = new NewsMySqlDAO();

newsSql->delete($_POST['ID]);

Esempio di estrazione dati (select)

$newsSql = new NewsMySqlDAO();
$sql = $gallerySql->queryByID($_GET['ID']);

foreach($sql as $row)
  echo $row->titolo . '
'; }

Nel caso di estrazione dati il DAO mi fornisce diverse funzioni per poter effettuare una select by (nel mio caso) ID, titolo, testo e data.
Analogamente posso effettuare una select by title:

$newsSql = new NewsMySqlDAO();
$sql = $gallerySql->queryBytitolo($_GET['titolo']);

foreach($sql as $row)
  echo $row->titolo . '
'; }

Buon lavoro!

Scritto da mario

Agile web e mobile developer, attraverso il blog mette in campo l'esperienza acquisita quotidianamente sul mondo del lavoro.

3 comments

  • Yftp

    18 Giugno 2012 at 23:36

    woooow grazie

    Reply

  • Gio

    30 Dicembre 2012 at 0:20

    Ciao, sbirciando nel codice di Php DAO, che non conoscevo, ho capito come risolvere un passaggio “causato” dall’uso di spl_autoload_register sul quale stavo cristando da diverse ore. Grazie!

    Reply

  • marco

    21 Giugno 2013 at 16:44

    Salve, articolo interessante. Come posso utilizzarlo con i vari framework php esistenti?

    grazie

    Reply

Lascia un commento

Your email address will not be published. Required fields are marked *

https://www.fullstacksas.it/wp-content/uploads/2021/11/FULLSTACK-LOGO-MINI-150x131.png

Via Vito Rosa, 7
70127 Bari – IT
P.iva – 08087100726

Gli attrezzi del mestiere

Full Stack Sas – p.iva 08087100726 – Rea n. BA – 603324

Copyright 2019. Bold Themes. All rights reserved.

bt_bb_section_top_section_coverage_image