• # Bien bien...

    Posté par . En réponse au journal PhpMyObject - nouvelle version 0.02. Évalué à 2.

    Je testerai la prochaine fois que je programmerai en PHP (hihihi).

    Vu qu'on parle d'ORM j'en profite pour parler de mon préféré, désolé :).
    Pour moi, l'ORM presque parfait existe déjà et il s'appelle ActiveRecord (Ruby).
    Quel bonheur de l'utiliser...

    Pour ceux qui connaissent pas :

    employes = Employe.find(:all)
    --> select * from employes;

    employe = Employe.find_by_nom_and_prenom("Blanco", "Nicolas")
    --> select * from employes where nom = 'Blanco' and prenom = 'Nicolas';

    nb_employe = Employe.count
    --> select count(*) from employes;

    employe.departement.nom ==> "Informatique"
    --> select * from departements where departement_id = 1

    employes = Employes.find(:all, :conditions => { :grade => 9..12, :sortie => nil })
    --> select * from employes where grade between 9 and 12 and sortie is null;

    Ce qui tue c'est dès qu'on veut utiliser les paramètres renvoyés par le user via un formulaire par exemple (sans compter que les paramètres sont automatiquement nettoyés pour éviter les injections).

    employe = Employe.create(params[:employe])
    --> prends tous les paramètres retournés dans le formulaire, mappe un objet et fais l'INSERT dans la table. C'est la même ligne, qu'il y ai 2 champs dans le formulaire ou 50 ! Il suffit juste de nommer les champs du formulaire avec le nom des colonnes dans la table et le tour est joué.

    Sans compter tout ce qu'il y a autour (gestion transactionnelle : rollback automatique de la table en cas d'exception lors de la manipulation d'un modèle, etc), callbacks, etc.

    Je n'ai pas encore trouvé d'ORM aussi complet, rapide et efficace en PHP...