The smallest PHP NoSQL database library, flat file JSON.
Bibliothèque de base de données PHP légère NoSQL, fichier plat JSON.
L’objectif principal de Jisly est de vous permettre de démarrer rapidement votre projet avec la possibilité de stockage
en mémoire et fichier plat à l’aide d’une syntaxe de requête NoSQL (orientée document).
Les accès concurrents sont gérés !
Cette librairie est disponible sur Packagist
composer require r0mdau/jisly:^2.0
Jisly repose sur la spécification PSR-4 de chargement automatique des classes.
use Jisly\JislyCollection;
public function saveCart(): void {
$jisly = new JislyCollection("/tmp/data", "cart");
...
}
_rid
.$directory
contient le chemin vers le répertoire où seront stockés les fichiers (=collections) du modèle de données.
$database = new Jisly($directory);
$nom
contient le nom de la collection que l’on souhaite requêter. Exemple : user
Retourne un objet JislyCollection :
$database->collection($nom);
Attention : chaque premier accès à une collection lance le stockage des données en mémoire.
PREAMBULE :
Les méthodes Insert, Update, Delete retournent un booleen, true
si l’action s’est bien passée, false
dans le cas contraire
Insère le tableau dans la collection spécifiée au format json et attribue un identifiant _rid
unique au document
si celui-ci n’a pas été spécifié :
$successBool = $database->collection($file)->insert(
[
"nom" => "dauby",
"prenom" => "romain"
]
);
Il faut au préalable rechercher tous les documents à effacer pour fournir l’attribut _rid
à la méthode delete
Supprime le seul document de la collection qui a pour valeur $rid
à l’attribut _rid
:
$successBool = $database->collection($file)->delete($rid);
Retourne tous les documents de la collection dans un array() d’objets :
$results = $database->collection($file)->find();
Retourne tous les documents de la collection qui ont un attribut nom
avec dauby
comme valeur dans un array()
d’objets :
$results = $database->collection($file)->find(
[
"nom" => "dauby"
]
);
Retourne le premier document qui a un attribut nom
avec 19
comme valeur sous forme d’objet :
$result = $database->collection($file)->findOne(
[
"nom" => 19
]
);
Ces deux opérateurs logiques peuvent être utilisés avec les méthodes find
et findOne
.
Si vous ne spécifiez pas d’opérateur logique, le OR sera utilisé.
Retourne tous les documents de la collection qui on un attribut nom
avec Lucas
OU un attribut prenom
avec Georges
dans un array() d’objets :
$result = $database->collection($file)->find(
[
"prenom" => "Georges",
"nom" => "Lucas"
], JislyCollection::LOGICAL_OR
);
Retourne le premier document qui a un attribut nom
avec Lucas
ET un attribut prenom
avec Georges
sous forme d’objet :
$result = $database->collection($file)->findOne(
[
"prenom" => "Georges",
"nom" => "Lucas"
], JislyCollection::LOGICAL_AND
);
Pour la modification, les documents concernés sont entièrement remplacés par le second array() passé en paramètre.
Il faut au préalable rechercher tous les documents à remplacer pour fournir l’attribut _rid
à la méthode update
Modifie le seul document de la collection qui a pour valeur $rid à l’attribut _rid
:
$successBool = $database->collection($file)->update(
$rid,
[
"prenom" => "georges",
"nom" => "lucas"
]
);