This page is not translated yet!
Nous l'avons vu, les tables dans EntityPHP sont gérées par des classes héritant de Entity.
Cette classe-mère apporte aux classes qui en héritent un ensemble de fonctionnalités bien utiles, la grande majorité étant statiques.
Cela signifie qu'il est possible d'accéder à ces méthodes via la syntaxe suivante :
<?php NomDeVotreClasse::nomDeLaMethode(); ?>
Ajouter des données se fait avec la méthode statique add(). Celle-ci prend en paramètre l'entité à ajouter en base.
Si nous reprenons la classe créée dans le premier tutoriel, voici un exemple de création d'un personnage :
<?php //On admet que le reste du code est inclus //Création du personnage $obj = new Characters(); //Ajout dans la base de données Characters::add($obj); ?>
Afin de modifier nos données, il nous faut d'abord les récupérer. L'occasion de découvrir la méthode statique getById() : celle-ci prend en paramètre l'id de l'entité à récupérer.
Si un résultat a été trouvé, l'objet PHP représentant l'entité est alors retourné. Sinon, la méthode renvoit null.
<?php //On admet que le reste du code est inclus //Récupération du personnage d'id 1 $obj = Characters::getById(1); if(!is_null($obj)) //L'entité a été récupérée, on peut la modifier ! { //... } else { echo 'L\'objet à modifier n\'a pas été trouvé...\'; } ?>
Notre objet étant récupéré, nous pouvons le modifier avec des setters que nous devons écrire nous-même dans la définition de la classe.
Ensuite, un simple appel à la méthode statique update() suffit pour sauvegarder nos modifications !
<?php //On admet que le reste du code est inclus //Récupération du personnage d'id 1 $obj = Characters::getById(1); if(!is_null($obj)) //L'entité a été récupérée, on peut la modifier ! { //On admet que la méthode setName() a été définie dans la classe Characters $obj->setName('Paul'); //Et on sauvegarde les modifications en base ! Characters::update($obj); } else { echo 'L\'objet à modifier n\'a pas été trouvé...'; } ?>
La suppression de données se fait presque de la même façon que la mise à jour. En fait, seule la méthode statique change !
Il ne faut en effet plus appeler update(), mais delete() :
<?php //On admet que le reste du code est inclus //Récupération du personnage d'id 1 $obj = Characters::getById(1); if(!is_null($obj)) //L'entité a été récupérée, on peut la supprimer ! { //Pouf, disparue ! Characters::delete($obj); } else { echo 'L\'objet à supprimer ne semble pas exister !'; } ?>
Attention : une entité supprimée ne pourra pas être récupérée, alors utilisez cette méthode avec parcimonie !