Class PHP Jestyc
Cliquez sur l'icône en haut à droite du code pour le sélectionner et le copier.
<?php
/**
* Jestyc API class
* https://jestyc.com/api/example-php
*/
class JestycApi
{
private $data;
private $url;
private $httpCode;
private $response;
/**
* Constructeur
* @param array $data Tableau des données de la requête
* @param string $url URL complète de l'API
*/
public function __construct($data, $url)
{
$this->data = $data;
$this->url = $url;
}
/**
* Exécute la requête et enregistre le code HTTP dans $httpCode
* et le résultat dans $response (array)
*/
public function execute()
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($this->data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
$this->httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$this->response = json_decode($json, true);
}
/**
* Renvoie True si la requête a été traitée par le serveur
* et si le serveur n'a renvoyé aucune erreur
* @return bool
*/
public function success()
{
return $this->httpCode == 200 && !empty($this->response) && empty($this->response['error']);
}
/**
* Renvoie $response
* @return array
*/
public function getResponse()
{
return $this->response;
}
/**
* Renvoie une donnée de $response en fonction d'une clé
* @param string $key Clé du tableau
* @return string / array
*/
public function getResponseValue($key)
{
return $this->response[$key] ?? '';
}
/**
* Renvoie le nombre d'éléments de $response
* @return int
*/
public function countResponse()
{
return is_array($this->response) ? count($this->response) : 0;
}
/**
* Renvoie différentes données pour débogage
* @return string
*/
public function debug()
{
return '<table style="white-space:pre"><tr><td>$data</td><td>'.print_r($this->data, true).'</td></tr><tr><td>$url</td><td>'.$this->url.'</td></tr><tr><td>$httpCode</td><td>'.$this->httpCode.'</td></tr><tr><td>$response</td><td>'.print_r($this->response, true).'</td></tr></table>';
}
}