Orm : dao, activerecord et dblist

Description

Une librairie qui gère la couche modèle de mon framework. Elle permet de générer automatiquement mes classes Activerecord (CRUD) et DbList (Wrapper de requêtes retournant des listes).

Source / Exemple :


Quelques exemples d'utilisation

Générer les classes :

	// genere une classe activerecord
	$arGen = new ArGenerator('mytest');
	$arGen->generateAR('personne');
	
	// genere une classe dblist
	$dblGen = new DblGenerator('mytest');
	$dblGen->generateDbl('personne');

Activerecord :

	// --- CREATE
	$ArPersonne = ArPersonne::getInstance();
	$ArPersonne->nom 		= 'Smith';
	$ArPersonne->prenom 	= 'John';
	$ArPersonne->flagEtat 	= 1;
	$ArPersonne->save();
	
	// recupere l'id
	$id_personne = $ArPersonne->id;
	
	// --- READ
	$ArPersonne = ArPersonne::getInstance($id_personne);
	
	// --- READ sur un autre champ que l'id
	$ArPersonne = ArPersonne::getInstance(array('nom' => 'Smith'), false);
	
	// --- UPDATE
	$ArPersonne->prenom = 'Jack';
	$ArPersonne->save();
	
	// --- DESTROY
	$ArPersonne->delete();
	
DbList

	// tous les elements
	$DblPersonne = DblPersonne::getInstance(DblPersonne::TYPE_EXAMPLE);
	foreach($DblPersonne as $personne){
		echo '<br> personnes : ';
		print_r($personne);
	}
	
Dao

	$db = DbFactory::getDb('mytest');
	$query = 'select * from personne where id > '.$db->formate(4,Dao::TYPE_INT).' order by nom limit 10';
	$nbLine = $db->execute($query);
	
	if($nbLine){
		while($line = $db->getLine()){
			echo '<br> personnes : ';
			print_r($line);
		}
	}

Conclusion :


Si des personnes veulent tester, s'en inspirer ou adapter les classes à d'autres Sgbd n'hésitez pas à me faire vos retours.
Merci d'avance.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.