BUG ? - Constante _TEST_SMS_DEST

On a un comportement sans doute non souhaité dans l'usage de la constante _TEST_SMS_DEST. Selon que la constante soit définie en string ou en array, elle se substituera ou s'ajoutera aux destinataires.

Lorsqu'elle est définie,

  • avec un seul numéro de téléphone en string, la constante s'ajoute aux destinataires quel qu'en soit le nombre. Résultat : le testeur recevra le SMS mais le(s) destinataire(s) aussi.
  • avec un seul numéro de téléphone ou plusieurs en array, la constante remplace les destinataires quel qu'en soit le nombre (Note : En PHP 7, les valeurs en array peuvent définir une constante, en plus d'une valeur en string). Résultat : seul le testeur recevra le SMS.

Cela provient du code présent dans les (sous-) fonctions de la fonction générique envoyer_sms, smsfactor et octopush qui procèdent au traitement suivant :

if (defined('_TEST_SMS_DEST') and _TEST_SMS_DEST) {
    if (!is_array(_TEST_SMS_DEST)) {
        $destinataire[] = _TEST_SMS_DEST;
    } else {
        $destinataire = _TEST_SMS_DEST;
    }
}

Peut-être, si ce comportement n'est pas voulu et relève d'un BUG, faudrait-il harmoniser le comportement de la façon suivante :

if (defined('_TEST_SMS_DEST') and _TEST_SMS_DEST) {
    if (!is_array(_TEST_SMS_DEST)) {
        $destinataire = [_TEST_SMS_DEST];
    } else {
        $destinataire = _TEST_SMS_DEST;
    }
}