Sms::agendarEnvio()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 1
eloc 12
c 3
b 0
f 0
nc 1
nop 8
dl 0
loc 16
rs 9.4285

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
namespace ByJG\WebService;
4
5
/**
6
 * Classe para envio de SMS utilizaçao o WebService ByJG
7
 * 2009-01-19
8
 * 2014-10-17
9
 *
10
 * Joao Gilberto Magalhaes
11
 * http://www.byjg.com.br/
12
 */
13
class Sms extends BaseService
14
{
15
16
    /**
17
     *
18
     * @param string $username
19
     * @param string $password
20
     */
21
    public function __construct($username, $password, $curlParams = [CURLOPT_TIMEOUT => 5])
22
    {
23
        parent::__construct($username, $password, $curlParams);
24
        $this->_service = "sms";
25
    }
26
27
    /**
28
     * Obter a versão do WebService
29
     *
30
     * @return string
31
     */
32
    public function obterVersao()
33
    {
34
        return $this->conectarServer("obterversao", array());
35
    }
36
37
    /**
38
     * Enviar um SMS
39
     *
40
     * @param string $ddd
41
     * @param string $celular
42
     * @param string $mensagem
43
     * @return string
44
     */
45
    public function enviarSMS($ddd, $celular, $mensagem)
46
    {
47
        $params = array(
48
            "ddd"      => $ddd,
49
            "celular"  => $celular,
50
            "mensagem" => utf8_encode($mensagem)
51
        );
52
53
        return $this->conectarServer("enviarsms", $params);
54
    }
55
    //
56
57
    /**
58
     * Envia SMS para um lista.
59
     * Os números da lista deve ter o seguinte formato: DDPPPPNNNN Onde DD é o DDD, PPPPNNNN é o número do celular.
60
     *
61
     * @param array $lista
62
     * @param strign $mensagem
63
     * @return string
64
     */
65
    public function enviarListaSMS($lista, $mensagem)
66
    {
67
        $params = array(
68
            "lista"    => implode('|', $lista),
69
            "mensagem" => $mensagem
70
        );
71
72
        return $this->conectarServer("enviarListaSMS", $params);
73
    }
74
75
    /**
76
     * Agenda o envio de SMS.
77
     * Data no formato YYYY/MM/DD.
78
     * Hora no formato HH:MM.
79
     * Periodo: Unidade de Repeticao (H - Horas, D - Dias).
80
     * Frequencia: O intervalo em 'periodos' entre as repetições.
81
     * Repeticoes: número de vezes a repetir o envio. Deixar vazio periodo, frequencia e repeticoes caso não queira repeticoes.
82
     *
83
     * @param string $ddd
84
     * @param string $celular
85
     * @param string $mensagem
86
     * @param string $data
87
     * @param string $hora
88
     * @param string $periodo
89
     * @param int $frequencia
90
     * @param int $repeticoes
91
     * @return string
92
     */
93
    public function agendarEnvio($ddd, $celular, $mensagem, $data, $hora, $periodo = "", $frequencia = "",
94
        $repeticoes = "")
95
    {
96
        $params = array(
97
            "ddd"        => $ddd,
98
            "celular"    => $celular,
99
            "mensagem"   => utf8_encode($mensagem),
100
            "data"       => $data,
101
            "hora"       => $hora,
102
            "periodo"    => $periodo,
103
            "frequencia" => $frequencia,
104
            "repeticoes" => $repeticoes
105
        );
106
107
        return $this->conectarServer("agendarEnvio", $params);
108
    }
109
110
    /**
111
     * Obter os recursos disponíveis para envio de SMS
112
     *
113
     * @return string
114
     */
115
    public function recursos()
116
    {
117
        return $this->conectarServer("recursos", array());
118
    }
119
120
    /**
121
     * Obter a quantidade de créditos disponíveis para envio de SMS
122
     *
123
     * @return string
124
     */
125
    public function creditos()
126
    {
127
        return $this->conectarServer("creditos", array());
128
    }
129
}
130