Hydratation
La programmation orientée objet en PHP : L'hydratation
Manipuler les données stockées : L'hydratation
Quand on vous parle d'hydratation, c'est qu'on parle d'"objet à hydrater". Hydrater un objet, c'est tout simplement lui apporter ce dont il a besoin pour fonctionner. En d'autres termes plus précis, hydrater un objet revient à lui fournir des données correspondant à ses attributs pour qu'il assigne les valeurs souhaitées à ces derniers. L'objet aura ainsi des attributs valides et sera en lui-même valide. On dit que l'objet a ainsi été hydraté.Schématiquement, une hydratation se produit comme ceci :
L'hydratation en pratique
<?php
// ...
// Un tableau de données doit être passé à la fonction (d'où le préfixe "array")
public function hydrate(array $donnees) {
if (isset($donnees['id'])) {
$this->setId($donnees['id']);
}
if (isset($donnees['nom'])) {
$this->setNom($donnees['nom']);
}
// ...
}
// ...
Pour hydrater tous les attributs, on préfère utiliser une boucle de programme comme ceci :
<?php
// ...
public function hydrate(array $donnees) {
foreach ($donnees as $key => $value) {
// On récupère le nom du setter correspondant à l'attribut
$method = 'set'.ucfirst($key);
// Si le setter correspondant existe.
if (method_exists($this, $method)) {
// On appelle le setter
$this->$method($value);
}
}
}
// ...