Notice: Use of undefined constant NONE - assumed 'NONE' in /home/developpez/www/developpez-com/upload/entityphp/index.php on line 21
EntityPHP • Create a basic database
EntityPHP

This page is not translated yet!

Create a basic database

  1. Commencer à utiliser EntityPHP
  2. Définir les champs de la table
  3. Les valeurs par défaut

Commencer à utiliser EntityPHP

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.

Définir les champs de la table

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 :

EntityPHP

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 :

Les valeurs par défaut

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;
        }
    }
?>