1: <?php
2:
3: namespace SMSApi;
4:
5: use SMSApi\Exception\ClientException;
6:
7: /**
8: * Class Client
9: * @package SMSApi
10: */
11: class Client {
12:
13: /**
14: * @var string
15: */
16: private $username;
17:
18: /**
19: * @var string
20: */
21: private $password;
22:
23: /**
24: * @param $username
25: */
26: public function __construct( $username ) {
27: $this->setUsername( $username );
28: }
29:
30: /**
31: * Set the username used to authenticate the user.
32:
33: * @param $username string
34: * @return $this
35: * @throws Exception\ClientException
36: */
37: public function setUsername( $username ) {
38:
39: if ( empty( $username ) ) {
40: throw new ClientException( "Username can not be empty" );
41: }
42:
43: $this->username = $username;
44: return $this;
45: }
46:
47: /**
48: * Set password encoded with md5 algorithm.
49: *
50: * @param $password
51: * @return $this
52: * @throws Exception\ClientException
53: */
54: public function setPasswordHash( $password ) {
55:
56: if ( empty( $password ) ) {
57: throw new ClientException( "Password can not be empty" );
58: }
59:
60: $this->password = $password;
61: return $this;
62: }
63:
64: /**
65: * Set password in plain text.
66: *
67: * @param $password
68: * @return $this
69: * @throws Exception\ClientException
70: */
71: public function setPasswordRaw( $password ) {
72: $this->setPasswordHash( md5( $password ) );
73: return $this;
74: }
75:
76: /**
77: * Returns the username used to authenticate the user.
78: *
79: * @return string The username
80: */
81: public function getUsername() {
82: return $this->username;
83: }
84:
85: /**
86: * Returns password
87: *
88: * @return string The salt password
89: */
90: public function getPassword() {
91: return $this->password;
92: }
93:
94: }
95: