Erreur passee par la requete (si existe) * */ public function __construct($error=null){ if( !( $error instanceof Error ) ) $error = new Error(Err::Success); $this->data = []; $this->error = $error; } /* AJOUTE UNE DONNEE A LA REPONSE * * @key Le nom de la valeur a ajouter * @value La valeur a ajouter * */ public function append($key, $value){ // Ajoute une entree pour la cle @key et de valeur @value $this->data[$key] = $value; return $this; } /* AJOUTE TOUTES LES DONNEES A LA REPONSE * * @dataset Le tableau associatif correspondant a la reponse * */ public function appendAll($dataset){ // Si ce n'est pas un tableau, on ne fais rien if( !is_array($dataset) ) return $this; // Si une valeur contient une erreur if( array_key_exists('error', $dataset) && $dataset['error'] instanceof Error){ // On definit cette erreur $this->error = $dataset['error']; // On enleve cette entree des donnees unset($dataset['error']); } // Ajoute une entree pour la cle @key et de valeur @value $this->data = $dataset; return $this; } /* RECUPERE UNE DONNEE DE LA REPONSE * * @key Le nom de la valeur a recuperer * * @return value La valeur a cette cle * @return error Retourne NULL si aucune valeur pour cette cle * */ public function get($key){ // Si la valeur de cle @key n'existe pas, on retourne NULL if( !isset($this->data[$key]) ) return null; // Sinon, on retourne la valeur associee return $this->data[$key]; } /* RECUPERE TOUTES LES DONNEES DE LA REPONSE * * @return data Les donnees de la reponse * */ public function getAll(){ // Sinon, on retourne la valeur associee return $this->data; } /* SERIALISATION A PARTIR DES DONNEES * * @return json Retourne les donnees serialisees * */ public function serialize(){ // Code Http $this->error->setHttpCode(); // Type de contenu header('Content-Type: application/json; charset=utf-8'); // On rajoute l'erreur au message $returnData = array_merge([ 'error' => $this->error->get(), 'ErrorDescription' => $this->error->explicit(), 'ErrorArguments' => $this->error->args() ], $this->data ); return json_encode($returnData); } } ?>