1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
converter.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Main\Engine\Response;
4
5
use Bitrix\Main\Text\StringHelper;
6
7
final
class
Converter
8
{
9
const
TO_SNAKE
= 0x00001;
10
const
TO_CAMEL
= 0x00002;
11
const
TO_SNAKE_DIGIT
= 0x00004;
12
const
TO_UPPER
= 0x00010;
13
const
TO_LOWER
= 0x00020;
14
const
LC_FIRST
= 0x00100;
15
const
UC_FIRST
= 0x00200;
16
const
KEYS
= 0x01000;
17
const
VALUES
= 0x02000;
18
const
RECURSIVE
= 0x04000;
19
20
const
OUTPUT_JSON_FORMAT
= self::KEYS | self::RECURSIVE | self::TO_CAMEL | self::LC_FIRST;
21
22
private
$format;
23
24
public
function
__construct
($format)
25
{
26
$this->
setFormat
($format);
27
}
28
29
public
static
function
toJson
()
30
{
31
return
new
self
(self::OUTPUT_JSON_FORMAT);
32
}
33
34
public
function
process
(
$data
)
35
{
36
if
(!
$data
)
37
{
38
return
$data
;
39
}
40
41
if
(is_string(
$data
))
42
{
43
return
$this->
formatString
(
$data
);
44
}
45
46
if
(is_array(
$data
))
47
{
48
return
$this->
formatArray
(
$data
);
49
}
50
51
return
$data
;
52
}
53
54
protected
function
formatArray
(
array
$array)
55
{
56
$newData = [];
57
foreach
($array as
$key
=> $item)
58
{
59
$itemConverted =
false
;
60
if
($this->format & self::VALUES)
61
{
62
if
(($this->format & self::RECURSIVE) && is_array($item))
63
{
64
$item = $this->
process
($item);
65
}
66
elseif
(is_string($item))
67
{
68
$item = $this->
formatString
($item);
69
}
70
71
$itemConverted =
true
;
72
}
73
74
if
($this->format & self::KEYS)
75
{
76
if
(!is_int(
$key
))
77
{
78
$key
= $this->
formatString
(
$key
);
79
}
80
81
if
(($this->format & self::RECURSIVE) && is_array($item) && !$itemConverted)
82
{
83
$item = $this->
formatArray
($item);
84
}
85
}
86
87
$newData[
$key
] = $item;
88
}
89
90
return
$newData;
91
}
92
93
protected
function
formatString
($string)
94
{
95
if
($this->format & self::TO_SNAKE)
96
{
97
$string = StringHelper::camel2snake($string);
98
}
99
100
if
($this->format & self::TO_SNAKE_DIGIT)
101
{
102
$string = preg_replace(
'/(\d+)([A-Za-z])/'
,
'$1_$2'
, $string);
103
$string = preg_replace(
'/([A-Za-z])(\d)/'
,
'$1_$2'
, $string);
104
$string = preg_replace(
'/([^_])([A-Z])/'
,
'$1_$2'
, $string);
105
$string = mb_strtolower($string);
106
}
107
108
if
($this->format & self::TO_CAMEL)
109
{
110
$string = StringHelper::snake2camel($string);
111
}
112
113
if
($this->format & self::TO_LOWER)
114
{
115
$string = mb_strtolower($string);
116
}
117
118
if
($this->format & self::TO_UPPER)
119
{
120
$string = mb_strtoupper($string);
121
}
122
123
if
($this->format & self::UC_FIRST)
124
{
125
$string = ucfirst($string);
126
}
127
128
if
($this->format & self::LC_FIRST)
129
{
130
$string = lcfirst($string);
131
}
132
133
134
return
$string;
135
}
136
137
public
function
getFormat
()
138
{
139
return
$this->format;
140
}
141
142
public
function
setFormat
($format)
143
{
144
$this->format = $format;
145
146
return
$this;
147
}
148
}
Bitrix\Main\Engine\Response\Converter
Определения
converter.php:8
Bitrix\Main\Engine\Response\Converter\toJson
static toJson()
Определения
converter.php:29
Bitrix\Main\Engine\Response\Converter\KEYS
const KEYS
Определения
converter.php:16
Bitrix\Main\Engine\Response\Converter\TO_UPPER
const TO_UPPER
Определения
converter.php:12
Bitrix\Main\Engine\Response\Converter\UC_FIRST
const UC_FIRST
Определения
converter.php:15
Bitrix\Main\Engine\Response\Converter\VALUES
const VALUES
Определения
converter.php:17
Bitrix\Main\Engine\Response\Converter\TO_LOWER
const TO_LOWER
Определения
converter.php:13
Bitrix\Main\Engine\Response\Converter\formatString
formatString($string)
Определения
converter.php:93
Bitrix\Main\Engine\Response\Converter\process
process($data)
Определения
converter.php:34
Bitrix\Main\Engine\Response\Converter\RECURSIVE
const RECURSIVE
Определения
converter.php:18
Bitrix\Main\Engine\Response\Converter\TO_SNAKE
const TO_SNAKE
Определения
converter.php:9
Bitrix\Main\Engine\Response\Converter\setFormat
setFormat($format)
Определения
converter.php:142
Bitrix\Main\Engine\Response\Converter\TO_SNAKE_DIGIT
const TO_SNAKE_DIGIT
Определения
converter.php:11
Bitrix\Main\Engine\Response\Converter\LC_FIRST
const LC_FIRST
Определения
converter.php:14
Bitrix\Main\Engine\Response\Converter\OUTPUT_JSON_FORMAT
const OUTPUT_JSON_FORMAT
Определения
converter.php:20
Bitrix\Main\Engine\Response\Converter\__construct
__construct($format)
Определения
converter.php:24
Bitrix\Main\Engine\Response\Converter\TO_CAMEL
const TO_CAMEL
Определения
converter.php:10
Bitrix\Main\Engine\Response\Converter\getFormat
getFormat()
Определения
converter.php:137
Bitrix\Main\Engine\Response\Converter\formatArray
formatArray(array $array)
Определения
converter.php:54
$data
$data['IS_AVAILABLE']
Определения
.description.php:13
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
bitrix
modules
main
lib
engine
response
converter.php
Создано системой
1.14.0