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 enarray
peuvent définir une constante, en plus d'une valeur enstring
). 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;
}
}