This page is not translated yet!
Pour vous servir de la librairie dans votre projet, il vous faut tout d'abord la télécharger.
Incluez le fichier EntityPHP.php dans un fichier PHP :
<?php require_once('EntityPHP.php'); ?>
Pour éviter les éventuels conflits avec d'autres librairies, EntityPHP est défini dans un espace de nom. Il est donc nécessaire d'utiliser le mot-clé use afin d'accéder facilement aux fonctionnalités apportées par la classe Entity :
<?php require_once('EntityPHP.php'); use EntityPHP\Entity; ?>
La classe Entity est la classe-mère de EntityPHP.
Chaque table de notre base de données sera représentée par une classe héritant de Entity.
Regardons par exemple une classe qui représentera une table Characters, destinée à stocker des personnages de RPG :
<?php require_once('EntityPHP.php'); use EntityPHP\Entity; class Characters extends Entity { //Contenu de la classe } ?>
Cette classe Characters nous permettra de générer et communiquer avec la table Users.
Les propriétés de notre classe seront les champs de la table générée. Ainsi, le code ci-dessous :
<?php require_once('EntityPHP.php'); use EntityPHP\Entity; class Characters extends Entity { protected $name = '255'; protected $life = 11; protected $description = 'TEXT'; protected $dateCreation = 'DATE'; protected $status = array('Normal','Paralysé','Empoisonné','Endormi'); } //Connexion à la base Entity::connectToDB('host','user','password','database'); //Création des tables Entity::createDatabase(); ?>
Nous permet de générer cette table :
Que s'est-il passé ici ? On constate tout d'abord qu'un champ id auto-incrémenté s'est automatiquement ajouté à la table générée : nous n'avons pas à nous en pré-occupé !
Chaque propriété non statique génère un champ du même nom à la table correspondante.
Les types de ces champs sont définis par les valeurs des propriétés, il faut donc respecter ces conventions de nommage :
EntityPHP utilisant les valeurs des propriétés pour générer les champs des tables, il nous faut utiliser le constructeur afin d'attribuer des valeurs par défaut.
Mais attention, si un constructeur est défini, il est nécessaire que ce soit un constructeur par défaut (sans paramètre obligatoire) : en effet, si l'un des paramètres n'est pas optionnel, la librairie lèvera une exception lors de la récupération des données.
<?php class Characters extends Entity { protected $name = '255'; protected $life = 11; protected $description = 'TEXT'; protected $dateCreation = 'DATE'; protected $status = array('Normal','Paralysé','Empoisonné','Endormi'); public function __construct ( $_name='Toto', $_life=100, $_description='...', $_status='Normal' ) { $this->name=$_name; $this->description=$_description; $this->life=$_life; $this->dateCreation=new DateTime(); $this->status=$_status; } } ?>