Skip to content

MrStrikes/my_big_orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Big ORM

TheKairi78, french youtuber staring at a computer

Installation

Pour utiliser correctement MBO il faut définir dans GLOBAL['MBO'] la configutation. Pour en savoir plus sur la configuration cliquez ici

Utilisation

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é.

Utilisation simple

$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.

Utilisation avancée

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages