Dao
-
La classe Dao permet de simplifier les accès aux données à travers des méthodes statiques.
La plupart de ces méthodes lient les objets au lien de données principal de l’application.
Pour accéder à des liens de données secondaires, vous pourrez utiliser les objets Data_Link représentant ces liens.Exemple d’utilisation : modification du mot de passe d’un utilisateur.
/** @var $user User::class */ $user = Dao::searchOne(['login' => 'Robert'], User::class); $user->password = $a_new_password; Dao::write($user);
Lecture de données
- count :
integer
Renvoie le nombre d’objets stockés dans la source de données correspondant à l’ objet de recherchewhat
.
- read :
object
Lit un objet dont l’identifiant est connu depuis la source de données.
- readAll :
object[]
Lit tous les objets d’une classe donnée depuis la source de données.
- search :
object[]
Recherche des objets d’une classe donnée à partir d’un objet de recherche ou d’un tableau expression de recherche.
- searchOne :
object
Recherche un objet d’une classe donnée, comme le fait search , mais ne renvoie qu’un seul objet. Utile lorsqu’on est sûr que les critères de recherches ne renverront qu’un seul objet.
- select : List_Data
Sélectionne des données d’un objet de classe$class_name
, décrites par lestring[]
$columns, éventuellement avec une expression de recherche$filter
.
Modification / suppression de données
- write :
$object
Enregistre les données de l’objet en utilisant le lien aux données.
Si l’objet a un identifiant dans le lien aux données (issu d’unread()
par exemple), les données sont remplacées.
Si l’objet n’est pas encore identifié, il sera stocké comme un nouvel enregistrement dans le lien aux données et se verra lié à un identifiant.
- delete :
boolean
Supprime les données stockées pour l’objet. Renvoiefalse
si les données n’ont pas pu être supprimées.
Manipulation des liens entre objets et données stockées
- disconnect
Déconnecte l’objet de son stockage en base. Il ne sera alors plus possible de l’enregistrer, par exemple.
- getObjectIdentifier :
mixed
Récupère l’identifiant de stockage lié à l’objet, ounull
s’il n’est pas stocké.
- is :
boolean
Retournetrue
si$object1
et$object2
sont correspondent au même enregistrement en base de données.
- replace :
$destination
Attribue à$destination
l’identifiant de stockage utilisé pour$source
. Ainsi si$destination
est enregistré par la suite, les données seront stockées dans l’espace de stockage de$source
. Si$write = true
,$destination
est immédiatement enregistré et écrase donc les données de$source
en base.
- storeNameOf :
string
Récupère le nom du stockage (par exemple un nom de table, de fichier, etc. suivant le type de lien aux données) utilisé pour les données stockant des objets de classe$class_name
.
Gestion du lien de donnée courant
Le lien de donnée courant est mémorisé pour la session en cours, et représente le lien à la source de données principale de l’application. Il peut s’agir en général du lien principal à la base de données MySQL de l’application, tel que configuré par
ITRocks\Framework\Dao
dans le fichier de configuration.- current() :
Data_Link
Renvoie l’objet lien aux données courant.
- current :
Data_link
Modifie le lien de donnée courant.
Transactions
Ces méthodes ne fonctionnent que si le lien aux données est transactionnel (
Dao::current() instanceof Transactional_Data_Link
). Dans le cas contraire, elles ne font rien et renvoient toujoursnull
.- begin() :
boolean
Démarre une transaction. Renvoiefalse
en cas d’erreur.
- commit() :
boolean
Exécute la transaction. Renvoiefalse
en cas d’erreur.
- rollback() :
boolean
Annule la transaction en cours. Renvoiefalse
en cas d’erreur.
- count :