1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
arrayfield.php
См. документацию.
1<?php
8
10
13
19{
22
24 protected $encodeFunction;
25
27 protected $decodeFunction;
28
30
32
33 public function __construct($name, $parameters = [])
34 {
36
37 $this->addSaveDataModifier([$this, 'encode']);
38 $this->addFetchDataModifier([$this, 'decode']);
39
40 parent::__construct($name, $parameters);
41 }
42
49 {
50 $this->serializationType = static::SERIALIZATION_TYPE_JSON;
51 $this->encodeFunction = [$this, 'encodeJson'];
52 $this->decodeFunction = [$this, 'decodeJson'];
53
54 return $this;
55 }
56
62 public function configureSerializationPhp()
63 {
64 $this->serializationType = static::SERIALIZATION_TYPE_PHP;
65 $this->encodeFunction = [$this, 'encodePhp'];
66 $this->decodeFunction = [$this, 'decodePhp'];
67
68 return $this;
69 }
70
78 public function configureSerializeCallback($callback)
79 {
80 $this->encodeFunction = $callback;
81 $this->serializationType = 'custom';
82
83 return $this;
84 }
85
93 public function configureUnserializeCallback($callback)
94 {
95 $this->decodeFunction = $callback;
96 $this->serializationType = 'custom';
97
98 return $this;
99 }
100
106 public function encode($value)
107 {
108 $callback = $this->encodeFunction;
109 return $callback($value);
110 }
111
117 public function decode($value)
118 {
119 if($value <> '')
120 {
121 $callback = $this->decodeFunction;
122 return $callback($value);
123 }
124
125 return [];
126 }
127
134 public function encodeJson($value)
135 {
136 return Json::encode($value, 0);
137 }
138
145 public function decodeJson($value)
146 {
147 return Json::decode($value);
148 }
149
155 public function encodePhp($value)
156 {
157 return serialize($value);
158 }
159
165 public function decodePhp($value)
166 {
167 return unserialize($value);
168 }
169
175 public function cast($value)
176 {
177 if ($this->is_nullable && $value === null)
178 {
179 return $value;
180 }
181
182 if ($value instanceof SqlExpression)
183 {
184 return $value;
185 }
186
187 return (array) $value;
188 }
189
196 public function convertValueFromDb($value)
197 {
198 return $this->getConnection()->getSqlHelper()->convertFromDbString($value);
199 }
200
207 public function convertValueToDb($value)
208 {
209 if ($value instanceof SqlExpression)
210 {
211 return $value;
212 }
213
214 return $value === null && $this->is_nullable
215 ? $value
216 : $this->getConnection()->getSqlHelper()->convertToDbString($value);
217 }
218
219 public function isValueEmpty($value)
220 {
221 if (is_array($value))
222 {
223 return empty($value);
224 }
225
226 return parent::isValueEmpty($value);
227 }
228
229 public function getSerializationType(): string
230 {
232 }
233
237 public function getGetterTypeHint()
238 {
239 return $this->getNullableTypeHint('array');
240 }
241
245 public function getSetterTypeHint()
246 {
247 return $this->getNullableTypeHint('array');
248 }
249}
const SERIALIZATION_TYPE_JSON
Определения arrayfield.php:31
configureUnserializeCallback($callback)
Определения arrayfield.php:93
const SERIALIZATION_TYPE_PHP
Определения arrayfield.php:29
convertValueFromDb($value)
Определения arrayfield.php:196
__construct($name, $parameters=[])
Определения arrayfield.php:33
isValueEmpty($value)
Определения arrayfield.php:219
convertValueToDb($value)
Определения arrayfield.php:207
configureSerializeCallback($callback)
Определения arrayfield.php:78
serialize($value)
Определения field.php:652
unserialize($value)
Определения field.php:657
getConnection()
Определения field.php:638
addFetchDataModifier($modifier)
Определения field.php:351
addSaveDataModifier($modifier)
Определения field.php:427
getNullableTypeHint(string $type)
Определения scalarfield.php:301
Определения json.php:9
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804