Bonjour à tous,
Je vous propose de beta-tester la prochaine version de QxOrm (nommée 1.2.1) :
http://www.qxorm.com/version/QxOrm_1.2.1_BETA_09.zip
Au programme de cette future version et déjà implémenté dans cette beta :
- amélioration de la classe qx::QxSqlQuery : nouveau moteur pour générer des requêtes sans écrire de SQL à partir de la classe qx::QxSqlQuery (inspiré de l'excellent Subsonic pour .Net, par exemple : query.where("my_column").isEqualTo(3).and_("my_column2").isGreaterThan(4) ===> le gros intérêt est de ne plus avoir à binder ses paramètres et la syntaxe est très proche du SQL) ;
- amélioration de la classe qx::QxSession : toutes les opérations de persistance (CRUD) peuvent être appelées plus facilement depuis une session, comme par exemple : session.fetchById<MonType>(3) pour récupérer une instance de MonType ayant pour identifiant 3 dans la base de données ;
- implémentation du pattern Repository avec les 3 classes suivantes : qx::IxRepository, qx::QxRepository<T>, et qx::QxRepositoryX ;
- nouvelle fonction void * qx::create_void_ptr(...) (cf. problématique de dodobibi sur ce thread), qui permet de passer par le type void * pour utiliser le moteur d'instrospection et valoriser les propriétés.
Voilà, il n'y a aucune doc encore ni de test unitaire mais ça compile correctement (donc ça marche).
Concernant la classe qx::QxRepositoryX, j'ai mis une option de compilation (_QX_AUTO_REGISTER_REPOSITORY) pour remplir la collection automatiquement. Je pense que par défaut, ce ne sera pas activé car ça répond quand même à une problématique bien particulière. Même sans l'option de compilation, il est possible de remplir la collection en utilisant qx::register_repository<T>(sKey).
Merci d'avance à tous ceux qui pourront tester cette version, faire des critiques et demandes d'évolution, etc.
Partager