GeneralEncoder   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A stringEncode() 0 6 1
A matrixEncode() 0 4 1
A encodeData() 0 12 3
A encodeElement() 0 4 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: claudio
5
 * Date: 17/09/15
6
 * Time: 14.42
7
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU General Public License
9
 * as published by the Free Software Foundation; either version 2
10
 * of the License, or (at your option) any later version.
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18
 */
19
20
namespace it\thecsea\api_reflection;
21
22
/**
23
 * Class GeneralEncoder
24
 * @package it\thecsea\api_reflection
25
 * @author Claudio Cardinale <[email protected]>
26
 * @copyright 2015 Claudio Cardinale
27
 * @version 1.0.0
28
 */
29
class GeneralEncoder
30
{
31
    const MATRIX = "matrix";
32
    const TEXT = "text";
33
    const GENERAL_RETURN = "generalReturn";
34
35
    /**
36
     * Encode the return of each method into a string
37
     * @param mixed $methodReturn return of method called by reflection
38
     * @return string
39
     */
40
    public function stringEncode($methodReturn)
41
    {
42
        ob_start();
43
        print_r($methodReturn);
44
        return ob_get_clean();
45
    }
46
47
    /**
48
     * Encode the return of each method into a associative matrix
49
     * @param mixed $methodReturn return of method called by reflection
50
     * @return array
51
     */
52
    public function matrixEncode($methodReturn)
53
    {
54
        return self::encodeData($methodReturn);
55
    }
56
57
    /**
58
     * Encode a complex/simple data into an array with information for each element
59
     * @param $data
60
     * @param $name
61
     * @return string
62
     * @see encodeElement
63
     */
64
    final static protected function encodeData($data, $name = self::GENERAL_RETURN){
0 ignored issues
show
Coding Style introduced by
As per PSR2, the static declaration should come after the visibility declaration.
Loading history...
65
        //encoding
66
        if(is_array($data)){
67
            $tmp = array();
68
            foreach($data as $key=>$value){
69
                $tmp[] = self::encodeData($value, $key);
70
            }
71
            return self::encodeElement($tmp, $name, self::MATRIX);
72
        }else{
73
            return self::encodeElement(self::TEXT, $name, $data);
74
        }
75
    }
76
77
    /**
78
     * encode an element (can be a complex element such as an array) into a array with name and type information
79
     * @param mixed $value
80
     * @param string $name
81
     * @param string $type
82
     * @return array
83
     */
84
    final static protected function encodeElement($value, $name = "", $type = self::TEXT)
0 ignored issues
show
Coding Style introduced by
As per PSR2, the static declaration should come after the visibility declaration.
Loading history...
85
    {
86
        return array("type"=>$type, "name"=>$name, "value"=>$value);
87
    }
88
}