Un framework pour gérer ses bases de données – Medoo
Cet article présente un mini framework permettant de gérer en toute facilité les bases de données en php 5 : Medoo [en]. Bien sûr si vous utilisez des frameworks comme Zend, Yii, Symfony ou encore Laravel, il ne vous sera sans doute pas utile, mais dans le cas contraire, il peut vous enlever une épingle du pied.
Medoo fonctionne à partir de php 5.1 et à besoin de PDO pour fonctionner.
A noter que les exemples dans ce « post », sont écrit pour du php 5.4.
En effet, en 5.4, on peut écrire un tableau de la façon suivante :
var data = ["foo", "bar"];
Alors qu’avant cette version de php, il faut les écrire comme suit :
var data = array("foo", "bar");
Ce framework est tellement petit qu’il ne contient qu’une seule classe « medoo ».
Il faut donc simplement l’appeler pour utiliser cette sur-couche aux bases de données :
require_once 'medoo.php';
On définit ensuite les paramètres d’accès à la base.
Si on suit la documentation, il faut éditer la classe medoo et mettre à jour les attributs suivants :
class medoo { protected $database_type = 'mysql'; protected $server = 'localhost'; protected $username = 'your_username'; protected $password = 'your_password';
Personnellement, je ne suis pas fan de toucher à une classe qui pourrait me permettre de gérer plusieurs bases de données et j’aurais tendance à créer une classe qui hérite de medoo pour simplement mettre à jour ces attributs. Néanmoins pour l’explication, nous allons rester sur cette méthode.
Il faut alors instancier la classe :
$database = new medoo('my_database');
Voilà le plus compliqué à été fait (et qu’est ce que ça été dur 😉 )
Nous allons maintenant voir comment récupérer les données d’une table, en insérer, les mettre à jour puis les supprimer.
1. Récupérer des données
La remontée des contenus d’une bases se fait simplement via l’appel de la méthode select.
On passe en premier paramètre le nom de la table sur laquelle on travail et en second les contraintes sous la forme d’un tableau.
$datas = $database->select("account", [ "user_name", "email" ], [ "user_id[>]" => 100 ]);
On récupère un tableau que l’on peut alors manipuler.
2. Insérer des données
Vu que tout est simple dans medoo, il faut simplement appeler la méthode « insert » pour injecter des données. Et comme pour le select, on passe le nom de la table dans laquelle on veut envoyer du contenu puis un tableau de ce qu’on veut envoyer.
$last_user_id = $database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com", "age" => 25, "lang" => ["en", "fr", "jp", "cn"] ]);
Cette méthode nous retourne l’id correspondant à cette injection.
3. Mettre à jour
Une fois que l’on a des données dans une base, on veut pouvoir les mettre à jour.
Et pour cela, on va appeler la méthode « update » avec toujours la même structure pour les paramètres.
$database->update("account", [ "type" => "user", // All age plus one "age[+]" => 1, // All level subtract 5 "level[-]" => 5, "lang" => ["en", "fr", "jp", "cn", "de"] ], [ "user_id[<]" => 1000 ]);
4. Supprimer
Enfin, il faut pouvoir les supprimer ces données.
Pour cela, nous avons la méthode « delete » à notre disposition qui fonctionne comme les précédentes fonctions : nom de la table puis un tableau de contrainte.
$database->delete("account", [ "AND" => [ "type" => "business" "age[<]" => 18 ] ]);
D’autres fonctionnalités existent comme pouvoir travailler directement avec du code SQL, récupérer le code sql utilisé ou encore gérer les erreurs…
Une dernière petite chose, c’est la licence MIT qui est utilisé pour ce projet, ce qui n’est pas pour me déplaire.
Vous pouvez maintenant télécharger Medoo et si besoin lire la courte mais efficace documentation pour l’utiliser.