Easy-Micro

LANGAGE POO PHP
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
Hydratation d'un objet

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 contrôler l'intégrité de ces valeurs, on utilise les setters (setId, setNom,...)

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);
    }
  }
}
// ...
En récupérant le nom de l'attribut, il est facile de déterminer le setter correspondant. En effet, chaque setter a pour nom setNomDeLAttribut.


Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]