diff --git a/manager/ORM/Rows.php b/manager/ORM/Rows.php index 337c049..3b6de41 100644 --- a/manager/ORM/Rows.php +++ b/manager/ORM/Rows.php @@ -17,11 +17,12 @@ const COND_LIKE = 'LIKE'; /* Attributs */ - private $where; // Tableau associatif contenant les conditions - private $select; // Tableau contenant la liste des champs à afficher - private $unique; // VRAI si on attend une valeur unique - private $schema; // Tableau contenant les informations associées aux données - private $joined; // Tableau contenant les Rows liés + private $where; // Tableau associatif contenant les conditions + private $whereOrder; // Ordonnanciation des ET/OU des conditions + private $select; // Tableau contenant la liste des champs à afficher + private $unique; // VRAI si on attend une valeur unique + private $schema; // Tableau contenant les informations associées aux données + private $joined; // Tableau contenant les Rows liés /* CONSTRUCTEUR @@ -36,13 +37,16 @@ /* (2) On initialise les conditions */ $this->where = []; - /* (3) On initialise les champs à retourner */ + /* (3) On initialise le conteneur de l'ordre des conditions */ + $this->whereOrder = []; + + /* (4) On initialise les champs à retourner */ $this->select = []; - /* (4) On initialise le caractère 'unique' du résultat */ + /* (5) On initialise le caractère 'unique' du résultat */ $this->unique = false; - /* (5) On initialise les jointures */ + /* (6) On initialise les jointures */ $this->joined = []; } @@ -51,7 +55,7 @@ - /* RETOURNE LES ENTREES D'UNE TABLE AVEC LA CLE PRIMAIRE SPECIFIEE + /* FILTRE LES ENTREES D'UNE TABLE AVEC LA CLE PRIMAIRE SPECIFIEE * * @primary Clé primaire simple * OU @@ -60,7 +64,7 @@ * @return Rows Tableau contenant toutes les entrées de la table * */ - public function getById($primary){ + public function whereId($primary){ /* [0] Vérification des paramètres =========================================================*/ if( $primary == null ) @@ -158,7 +162,7 @@ - /* GETTERS DYNAMIQUES + /* FILTRAGE DYNAMIQUES * * @method Nom de la méthode * @parameter Valeur du paramètre @@ -170,7 +174,7 @@ public function __call($m, $a){ /* [0] On vérifie que la requête est du type 'getBy{Attribute}' =========================================================*/ - if( !preg_match('/^getBy(.+)$/', $m, $regex) ) // si requête incorrecte, on ne fais rien + if( !preg_match('/^where(.+)$/', $m, $regex) ) // si requête incorrecte, on ne fais rien return $this; diff --git a/test/automate.php b/test/automate.php index a14ebbf..b0df116 100755 --- a/test/automate.php +++ b/test/automate.php @@ -348,9 +348,9 @@ $myUser = Table::get('user') // Access to table 'user' - ->getById([3, Rows::COND_SUP]) // PRIMARY KEY (if composed, all arguments in array) - ->getById([100, Rows::COND_INF]) // PRIMARY KEY (if composed, all arguments in array) - ->getByUsername(['g%', Rows::COND_LIKE]) // Dynamic getter 'getByMySuperColumn' -> 'my_super_column' + ->whereId([3, Rows::COND_SUP]) // PRIMARY KEY (if composed, all arguments in array) + ->whereId([100, Rows::COND_INF]) // PRIMARY KEY (if composed, all arguments in array) + ->whereUsername(['g%', Rows::COND_LIKE]) // Dynamic getter 'getByMySuperColumn' -> 'my_super_column' ->select(['mail', 'username', 'firstname']) // Select clause ->select('id_user') // Select clause (added) ->join('id_warehouse', $warehouse) // joins warehouse (with name 'my-warehouse') to column 'id_warehouse'