Completed
Push — master ( a02b53...54bf83 )
by Jared
02:57
created

Property::to_object()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 2
eloc 4
nc 2
nop 1
1
<?php
2
3
/**
4
 * @author Jared King <[email protected]>
5
 *
6
 * @link http://jaredtking.com
7
 *
8
 * @copyright 2015 Jared King
9
 * @license MIT
10
 */
11
namespace Pulsar;
12
13
use Carbon\Carbon;
14
class Property
15
{
16
    /**
17
     * Casts a value to a string.
18
     *
19
     * @param mixed $value
20
     *
21
     * @return string
22
     */
23
    public static function to_string($value)
24
    {
25
        return (string) $value;
26
    }
27
28
    /**
29
     * Casts a value to an integer.
30
     *
31
     * @param mixed $value
32
     *
33
     * @return int
34
     */
35
    public static function to_integer($value)
36
    {
37
        return (int) $value;
38
    }
39
40
    /**
41
     * Casts a value to a float.
42
     *
43
     * @param mixed $value
44
     *
45
     * @return float
46
     */
47
    public static function to_float($value)
48
    {
49
        return (float) $value;
50
    }
51
52
    /**
53
     * Casts a value to a boolean.
54
     *
55
     * @param mixed $value
56
     *
57
     * @return bool
58
     */
59
    public static function to_boolean($value)
60
    {
61
        return filter_var($value, FILTER_VALIDATE_BOOLEAN);
62
    }
63
64
    /**
65
     * Casts a value to a Carbon date object.
66
     *
67
     * @param mixed  $value
68
     * @param string $format expected date format
69
     *
70
     * @return Carbon
71
     */
72
    public static function to_date($value, $format)
73
    {
74
        if ($value instanceof Carbon) {
75
            return $value;
76
        }
77
78
        // cast non-Carbon dates into Carbon objects
79
        return Carbon::createFromFormat($format, $value);
80
    }
81
82
    /**
83
     * Casts a value to an array.
84
     *
85
     * @param mixed $value
86
     *
87
     * @return array
88
     */
89
    public static function to_array($value)
90
    {
91
        // decode JSON strings into an array
92
        if (is_string($value)) {
93
            return json_decode($value, true);
94
        }
95
96
        return (array) $value;
97
    }
98
99
    /**
100
     * Casts a value to an object.
101
     *
102
     * @param mixed $value
103
     *
104
     * @return object
105
     */
106
    public static function to_object($value)
107
    {
108
        // decode JSON strings into an object
109
        if (is_string($value)) {
110
            return (object) json_decode($value);
111
        }
112
113
        return (object) $value;
114
    }
115
}
116