[php5] ormapper 4 crud

Description

Pourquoi réécrire moult fois les même choses ... A rien!
Ce petit mapper sans grande prétention permet de mapper une BdD mysql (il sera surement porté sur plus de db quand j'aurais le temps!) De plus il manque la notion de clef étrangère enfin moult choses !!!
Donc !

D'abord On configure VarType.cls.php pour définir quel type de donnée mysql sera géré par quel classe de Typage.

Ensuite, dans l'index.php il faut définir la BdD et le dossier ou il va cracher les classes.

Enfin, il faut copier les classes Boolean,Crud,Database,Factory,Float,Integer,Null,Type,Node est c paré !

Un autoload et ça va vous booster le dev' !

Si vous voyez des coquilles, si vous voulez participer, si vous voulez quoique ce soit dites le ! :D

Have Fun'

Mise à jour : 17/12/2008

La mise à jour est arrivée et continuera d'arriver petit à petit!
Au programme j'ajoute quelques fonctionnalités et surtout des trucs qui marchait pas top fonctionneront :D (Oups^^)

ClassGenerator
la methode toXml est disponible, elle transforme un objet en xml tout simplement. A voir pour faire du XPath bientôt ^_^
(il faut copier aussi Node pour cette méthode)

CRUD
C : Create, on peut obtenir le nouvel enregistrement dans l'objet courant!
R : Retrieve, on peut "forcer" le cast des membres (Objet quand tu nous tiens ^^) et on peut utiliser le LIKE pour les String! (Yes i like String ;) désolé)
U : Update, On peut utiliser le LIKE :) On se base toujours sur la PK et on met a jour les membres n'ayant pas un Type contenant une instance de Null. Attention aux tables sans PK ça marche pas ! et ça vous plantera !
D : Delete, On peut utiliser le LIKE :) On se base sur tous les champs donné de type non Null

Classes de Typage "fort"
Forçage/Souplesse de cast vers le Type voulu si il correspond aux critères "logique"
'0' et '1' peuvent devenir un Integer et un Boolean
'100' peut devenir un Integer
Intégration de "nouveaux" types pour MySQL (ceux donnés par AKHENATHON)

J'ajoute "l'environnement de developpement"

1/Créer une BdD tester

y mettre une table de test...

CREATE TABLE `users` (
`id_users` int(10) unsigned NOT NULL auto_increment,
`login_users` varchar(50) NOT NULL,
`password_users` varchar(50) NOT NULL,
`email` varchar(200) NOT NULL,
`money` int(10) unsigned NOT NULL,
`coin` int(10) unsigned NOT NULL default '0',
`active` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`id_users`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=56 ;

Les reste est dans le dossier Tester donc configurez si nécessaire...
régénérez la classe si besoin puis ne modifiez que index.php dans Tester pour faire vos tests.

Je reste ouvert à toute proposition qui fera avancer :)

Conclusion :


Début d'un Fw maison !

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.