Pour utiliser correctement MBO il faut définir dans GLOBAL['MBO']
la configutation. Pour en savoir plus sur la configuration cliquez ici
Créer un fichier pour votre entité. celui-ci doit extends MBOEntity
.
Attention MBOEntity
implementeEntityInterface
.php
getCol()
retourne un tableau des noms de colonne dans votre DB. Chaque nom dans le tableau correspond à une variable dans votre entité, chacune de ces variable doit posséder un getter et un setter en camelCase (ex:public function getCountryId(){}
)getTableName()
retourne le nom de votre tableau dans votre DB.getId()
retourne l'id de votre entitésetId()
définit un nouvel id pour l'entité
Vous pouvez maintenant utiliser MBO sur votre entité.
$client = new clients(2);
récupère le client avec l'id 2 dans votre DB.
$client = new clients();
récupère une instance de client vide.
$data = $client->getData();
récupère les data du client dans un tableau
$client = $client->buildEntity(array $data, bool $newEntity)
crée une nouvelle entité ou complète l'entité actuelle selon $newentity
avec les données de $data
$client->getById($id, bool $newEntity);
récupère les data de l'entité dans la DB selon l'id et appel buildEntity()
avec les data récupéré.
$clients = $client->getAll();
return un tableau d'entité contenant toutes les entités de la db.
$clients = $client->getByCriteria(...$where);
return un tableau d'entité en fonction des parametres where envoyé (voir l'utilisation de WHERE dans l'utilisation avancée).
$client->save();
Enregistre l'entité $client
dans la db, si l'id de $client
existe dans la db, alors cette ligne sera mise à jour, sinon on crée une nouvelle ligne.
$client->deleteEntity();
Supprime dans la db le ligne avec l'id de $client
.
$client->exist(...where);
retourne un booléen en fonction de ce qu'il trouve dans la db avec les parametres where (voir l'utilisation de WHERE dans l'utilisation avancée).
$client->countEntity();
Compte le nombre d'entité dans la DB.
MBO vous permet de faire aussi vos propre requete.
SELECT + COUNT + ORDER BY + WHERE:
<?php
$client = new clients();
$client->SELECT('firstname', 'lastname') // SELECT('*') est aussi possible
->COUNT('lastname', true) // true = DISTINCT lastname, FALSE = lastname, false par default
->ORDERBY(['id', 'ASC'], ['phone', 'DESC'])
->WHERE(['id', '>', '0'], ['id', '<', '10'], ['id', '=', 42, 'OR'])
->buildQuery();
$result = $client->execute(2, false); //execute(fetchmode = 2, clear = true)
$client->clear();
?>
SELECT()
prend en parametre des nom de colonne.
COUNT()
prend en parametre un nom de colonne et un booléen pour présicer le DISTINCT ou non.
ORDERBY()
prend en parametre des tableaux avec un nom colonne et un suffixe qui par default vaut ASC.
WHERE()
prend un parametre des tableaux avec un nom de colonne, la condition a tester, une valeur, et un opérateur qui par default vaut AND. Les where seront placé dans leur ordre d'appel, l'opérateur est placer avant le contenue du tableau dans notre exemple, le where vaut : id > 0 AND id < 10 OR id = 42
.
buildQuery()
construit la query et execute()
l'execute et retourne le résultat dans un tableau.
La fonction clear()
vide les parametres select,update,where,insert,delete,orderby,count. par default la fonction execute appel cette fonction après son execution.
<?php
$client = new clients();
$client->INSERT(["lastname", "value"], ["firstname", "value"], ["address", "value"], ["city", "value"], ["country_id", "value"], ["phone", "value"], ["email", "value"])
->buildQuery()->execute();
?>
INSERT()
prend un parametre des tableaux des valeurs à insérer: ["nom de la colonne", "valeur"]
.
<?php
$client = new client();
$client->UPDATE(["lastname", "newValue"], ["address", "newValue"])
->buildQuery()->execute();
?>
UPDATE()
prend en parametre des tableaux des valeurs à modifier: ["nomdelacolonne", "nouvelle valeur"]
.
$client = new client();
$client->DELETE(true)
->WHERE(["id", "=", 78])
->buildQuery()->execute();
DELETE()
prend en parametre un booléen pour définir si on doit supprimer on non les lignes récupérer par le where.
Vous pourrez trouver un exemple d'entité ici avec le tableau correspondant dans la db. Et voici un fichier qui utilise quelques fonctionnalitées de l'entité d'exemple.