PHP et les sessions : utilisation avancée (2) Lecture et écriture des données

Lecture des données

La lecture des données consiste à récupérer les données écrites dans un fichier avant une précédente fermeture. Il faut donc vérifier que la session existait déjà, et n'a pas été supprimée.

Le moteur de PHP se charge de la sérialisation / désérialisation

Cette fonction doit impérativement retourner une chaine de caractères (string). Le moteur de PHP se charge lui-même de la sérialisation / désérialisation des données avant et après la lecture / écriture. Nous retournons donc directement le bloc de données lu, sans modification :

   1.     /**
  2.       * Lecture des données de session sérialisées.
  3.       * @param string $id identifiant de la session
  4.       * @return string
  5.       */
  6.     public static function read($id)
  7.     {
  8.     $return = '';
  9.     $sess_file = self::$save_path.'/sess_'.$id;
 10.     if(is_readable($sess_file))
 11.     {
 12.     $return = file_get_contents($sess_file);
 13.     }
 14.     return $return;
 15.     }

Écriture des données

De la même manière, on écrira le bloc de données transmis par PHP directement dans le fichier de session. La méthode prendra deux paramètres : l'identifiant de session, et le bloc de données.

  1.     /**
  2.       * Écriture des données de la session.
  3.       * @param string $id
  4.       * @param string $data
  5.       * @return bool
  6.       */
  7.     public static function write($id, $data)
  8.     {
  9.     $res = false;
 10.     $sess_file = self::$save_path.'/sess_'.$id;
 11.     if(is_writable($sess_file))
 12.     {
 13.     $res = file_put_contents($sess_file, $data);
 14.     }
 15.     return $res;
 16.     }