Completed
Push — master ( ff9248...d01eef )
by Elf
02:44
created

helpers.php ➔ asset_from()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 3
dl 0
loc 4
ccs 0
cts 1
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
if (! function_exists('urlsafe_base64_encode')) {
4
    /**
5
     * Encodes the given data with base64, and returns an URL-safe string.
6
     *
7
     * @param  string  $data
8
     * @return string
9
     */
10
    function urlsafe_base64_encode($data)
11
    {
12 1
        return strtr(base64_encode($data), ['+' => '-', '/' => '_', '=' => '']);
13
    }
14
}
15
16
if (! function_exists('urlsafe_base64_decode')) {
17
    /**
18
     * Decodes a base64 encoded data.
19
     *
20
     * @param  string  $data
21
     * @param  bool  $strict
22
     * @return string
23
     */
24
    function urlsafe_base64_decode($data, $strict = false)
25
    {
26 1
        return base64_decode(strtr($data.str_repeat('=', (4 - strlen($data) % 4)), '-_', '+/'), $strict);
27
    }
28
}
29
30
if (! function_exists('mb_trim')) {
31
    /**
32
     * Strip whitespace (or other characters) from the beginning and end of a string.
33
     *
34
     * @see https://github.com/vanderlee/PHP-multibyte-functions/blob/master/functions/mb_trim.php
35
     *
36
     * @param  string  $string
37
     * @return string
38
     */
39
    function mb_trim($string)
40
    {
41 1
        return mb_ereg_replace('^\s*([\s\S]*?)\s*$', '\1', $string);
42
    }
43
}
44
45
if (! function_exists('string_value')) {
46
    /**
47
     * Converts any type to a string.
48
     *
49
     * @param  mixed  $value
50
     * @param  int  $jsonOptions  JSON_PRETTY_PRINT, etc
51
     * @return string
52
     */
53
    function string_value($value, $jsonOptions = 0)
54
    {
55 1
        if (is_object($value)) {
56 1
            if (method_exists($value, '__toString')) {
57 1
                return (string) $value;
58
            }
59
60 1
            if (method_exists($value, 'toArray')) {
61 1
                $value = $value->toArray();
62
            }
63
        }
64
65 1
        return is_string($value) ? $value : json_encode($value, $jsonOptions | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
66
    }
67
}
68
69
if (! function_exists('in_arrayi')) {
70
    /**
71
     * Case-insensitive `in_array`.
72
     *
73
     * @see https://stackoverflow.com/a/2166524/521946
74
     * @see http://uk.php.net/manual/en/function.in-array.php#89256
75
     *
76
     * @param  string  $needle
77
     * @param  array  $haystack
78
     * @return bool
79
     */
80
    function in_arrayi($needle, $haystack)
81
    {
82
        return in_array(strtolower($needle), array_map('strtolower', $haystack));
83
    }
84
}
85
86
if (! function_exists('request')) {
87
    /**
88
     * Get an instance of the current request or an input item from the request.
89
     *
90
     * @param  array|string  $key
91
     * @param  mixed   $default
92
     * @return \Illuminate\Http\Request|string|array
93
     */
94
    function request($key = null, $default = null)
95
    {
96
        if (is_null($key)) {
97
            return app('request');
98
        }
99
100
        if (is_array($key)) {
101
            return app('request')->only($key);
102
        }
103
104
        return data_get(app('request')->all(), $key, $default);
105
    }
106
}
107
108
if (! function_exists('active')) {
109
    /**
110
     * Returns string 'active' if the current request URI matches the given patterns.
111
     *
112
     * @return string
113
     */
114
    function active()
115
    {
116
        return call_user_func_array([app('request'), 'is'], func_get_args()) ? 'active' : '';
117
    }
118
}
119
120
if (! function_exists('asset_from')) {
121
    /**
122
     * Generate the URL to an asset from a custom root domain such as CDN, etc.
123
     *
124
     * @param  string  $root
125
     * @param  string  $path
126
     * @param  bool|null  $secure
127
     * @return string
128
     */
129
    function asset_from($root, $path = '', $secure = null)
130
    {
131
        return app('url')->assetFrom($root, $path, $secure);
132
    }
133
}
134