Entity
Note de version 21.24.04 :
Comme expliqué plus en détail dans la section BDD la gestion des requetes a changé,
il est recomandé de regénérer vos entity si elles ont été généré avant cette verssion !
Les entités font office d'ORM dans votre projet,
une classe entité vous permet de lire, ajouter, modifier ou supprimer des entrées de votre base de données sans avoir à saisir une requête SQL
(ormis une eventuelle condition "where" ). Les entités exploitent un objet bdd accessible via application::$_bdd
les entités seront capable de recréer la structure de leur base de données si celle-ci est perdue (mais ne permettent pas de sauvegarder les données ).
Créer des entités
La création d'une entité est simple, il est conseillé de mettre la création d'entité soit dans le constructeur de pages.class.php
soit dans le constructeur de la classe métier qui exploitera cette entité. Voici le code (consultez la documentation technique pour plus d'informations)
Créer des relations entres les entités et astuces pour créer plusieurs entités facilement
MAJ 21.18.02
Depuis la version 21.18.02, il est possible de créer l'ensemble de vos entités ainsi :
Utilisation des entités
Une fois les entités créées, elles peuvent être utilisées (nous utiliserons l'exemple des 'user' et 'rang')
ATTENTION : si vous utilisez des variables dans les paramètres $where :
utilisez le tableau $params afin d'utiliser les requêtes préparé et vous protéger des injections SQL
pensez également à la fonction strip_tags pour vous protéger des failles XSS.
Les types de champ/attribut
Type (code PHP) | Type (SQL) | Description |
---|---|---|
int, integer | int(11) | un champ de nombre entiers |
bool, boolean | int(1) | 0 ou 1 |
string | text | un champ de texte, peut contenir aussi du HTML, des dates, ou des nombres |
text | un champ de texte pour les mail, une verification est faite en PHP par l'entité avant l'enregistrement en base de données | |
array | text |
(depuis la version 21.18.03) un champ de texte JSON, les conversions de array (coté PHP) en JSON (coté SQL) et inversement sont gérées en PHP par l'entité. Inutile donc d'utiliser json_encode() et json_decode() |
psw (ou password) | text | (depuis la version 21.25.02) un champ de texte pour les mot de passe, le hash se fait automatiquement lors de l'appel de set_psw() |