Completed
Push — master ( 2b2467...86fe2f )
by Marco
12:06
created

Protocol   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
c 1
b 0
f 0
lcom 1
cbo 0
dl 0
loc 44
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setProtocol() 0 11 2
A getProtocol() 0 5 1
1
<?php namespace Comodojo\RpcClient\Components;
2
3
use \Exception;
4
5
/**
6
 * Protocol Trait
7
 *
8
 * @package     Comodojo Spare Parts
9
 * @author      Marco Giovinazzi <[email protected]>
10
 * @license     MIT
11
 *
12
 * LICENSE:
13
 *
14
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
 * THE SOFTWARE.
21
 */
22
23
trait Protocol {
24
25
    /**
26
     * Supported RPC protocols
27
     *
28
     * @var string
29
     */
30
    protected $supported_protocols = array("XML", "JSON");
31
32
    /**
33
     * RPC protocol
34
     *
35
     * @var string
36
     */
37
    private $protocol = 'XML';
38
39
    /**
40
     * Set RPC protocol
41
     *
42
     * @param   string  $protocol RPC protocol
43
     *
44
     * @return  \Comodojo\RpcClient\RpcClient
45
     *
46
     * @throws \Exception
47
     */
48
    public function setProtocol($protocol) {
49
50
        $proto = strtoupper($protocol);
51
52
        if ( !in_array($proto, $this->supported_protocols) ) throw new Exception("Invalid RPC protocol");
53
54
        $this->protocol = $proto;
55
56
        return $this;
57
58
    }
59
60
    final public function getProtocol() {
61
62
        return $this->protocol;
63
64
    }
65
66
}
67