8246 sujets

Développement web côté serveur, CMS

Bonjour,

Actuellement entrain de développer un système d'Infos Trafic pour une compagnie de transport, je dois envoyer des SMS pour informer les usagers à la publication d'une alerte.
J'ai crée un script fonctionnel mais alors vraiment pas optimisé..
J'ai honte d'avoir pondu un truc pareil Smiley sweatdrop

J'aimerais bien obtenir le même résultat mais je ne sais pas vraiment comment m'y prendre..

Voici le script en question (alerte_SMS.php) :

<?php 
require '../../../includes/config.php';

require '../vendor/autoload.php';
use \Ovh\Api;

$endpoint = 'xxxx';
$applicationKey = "xxxx";
$applicationSecret = "xxxx";
$consumer_key = "xxxx";

//Connexion à l'API OVH
$conn = new Api($applicationKey, $applicationSecret, $endpoint, $consumer_key);
                    
                    
//Recherche si une alerte est à publier 
$ReqInfosTrafic = $bdd->query("SELECT * FROM infostrafic WHERE CURRENT_TIMESTAMP() BETWEEN date_pub AND date_fin AND SMS = 1"); 
while ($data_InfosTrafic = $ReqInfosTrafic->fetch()) { 
 
//Récupère le numéro des lignes concernées 
$InfosTrafic_ligne = strtok($data_InfosTrafic['lignes'], ",");

while ($InfosTrafic_ligne !== false) {
$InfosTrafic_ligne = strtok(",");
$ReqLignesPourInfosTrafic = $bdd->query("SELECT * FROM data_lignes WHERE IDlignes = '{$InfosTrafic_ligne}'"); 
while ($data_lignes = $ReqLignesPourInfosTrafic->fetch()) { 
    
//Récupère le numéro de téléphone du client en fonction de ses alertes  
$ReqClientsAlertes = $bdd->query("SELECT * FROM clients_alertes a INNER JOIN clients c ON c.IDclient = a.client_ID WHERE a.SMS = 1 AND a.ligne_ID = '{$data_lignes['IDlignes']}'"); 
                               while ($data_ClientsAlertes = $ReqClientsAlertes->fetch()) {  
                               
//Envoi du SMS                              
$smsServices = $conn->get('/sms');

foreach ($smsServices as $smsService) {

    print_r($smsService);
}

$content = (object) array(
    "charset"=> "UTF-8",
    "class"=> "phoneDisplay",
    "coding"=> "7bit",
    "message"=> $data_InfosTrafic['titre']." PLUS D'INFOS  http://citel.dev/s/".$data_InfosTrafic['IDalerte'], 
    "noStopClause"=> true,
    "priority"=> "high",
    "receivers"=> [ $data_ClientsAlertes['telephone'] ],
    "sender" => $nom_service,
    "senderForResponse"=> false,
    "validityPeriod"=> 2880
);
$resultPostJob = $conn->post('/sms/'. $smsServices[0] . '/jobs', $content);

print_r($resultPostJob);

$smsJobs = $conn->get('/sms/'. $smsServices[0] . '/jobs');
print_r($smsJobs);
                               

} $ReqClientsAlertes->closeCursor();                              
                              
} $ReqLignesPourInfosTrafic->closeCursor(); }  
 
  
} $ReqInfosTrafic->closeCursor();


NOTE: Ce script est exécuté via une tache CRON toutes les 2 minutes.

Merci Smiley smile