Exponential 5.x Kernel 7.5.40 Exponential New Stack (Symfony-based) Kernel — PHP Class Reference

Publish/Core/Persistence/Legacy/Content/Type/Mapper.php
Go to the documentation of this file.
1 <?php
2
7 namespace eZ\Publish\Core\Persistence\Legacy\Content\Type;
8
9 use eZ\Publish\Core\Persistence\Legacy\Content\Language\MaskGenerator;
10 use eZ\Publish\Core\Persistence\Legacy\Content\MultilingualStorageFieldDefinition;
11 use eZ\Publish\SPI\Persistence\Content\Type;
12 use eZ\Publish\SPI\Persistence\Content\Type\CreateStruct;
13 use eZ\Publish\SPI\Persistence\Content\Type\UpdateStruct;
14 use eZ\Publish\SPI\Persistence\Content\Type\FieldDefinition;
15 use eZ\Publish\SPI\Persistence\Content\Type\Group;
16 use eZ\Publish\SPI\Persistence\Content\Type\Group\CreateStruct as GroupCreateStruct;
17 use eZ\Publish\Core\Persistence\Legacy\Content\StorageFieldDefinition;
18 use eZ\Publish\Core\Persistence\Legacy\Content\FieldValue\ConverterRegistry;
19
25 class Mapper
26 {
32 protected $converterRegistry;
33
35 private $maskGenerator;
36
43 public function __construct(ConverterRegistry $converterRegistry, MaskGenerator $maskGenerator)
44 {
45 $this->converterRegistry = $converterRegistry;
46 $this->maskGenerator = $maskGenerator;
47 }
48
58 public function createGroupFromCreateStruct(GroupCreateStruct $struct)
59 {
60 $group = new Group();
61
62 $group->name = $struct->name;
63
64 // $group->description is intentionally left out, since DB structure does not support it, yet
65
66 $group->identifier = $struct->identifier;
67 $group->created = $struct->created;
68 $group->modified = $struct->modified;
69 $group->creatorId = $struct->creatorId;
70 $group->modifierId = $struct->modifierId;
71
72 return $group;
73 }
74
82 public function extractGroupsFromRows(array $rows)
83 {
84 $groups = [];
85
86 foreach ($rows as $row) {
87 $group = new Group();
88 $group->id = (int)$row['id'];
89 $group->created = (int)$row['created'];
90 $group->creatorId = (int)$row['creator_id'];
91 $group->modified = (int)$row['modified'];
92 $group->modifierId = (int)$row['modifier_id'];
93 $group->identifier = $row['name'];
94
95 $groups[] = $group;
96 }
97
98 return $groups;
99 }
100
109 public function extractTypesFromRows(array $rows, bool $keepTypeIdAsKey = false)
110 {
111 $types = [];
112 $fields = [];
113
114 foreach ($rows as $row) {
115 $typeId = (int)$row['ezcontentclass_id'];
116 if (!isset($types[$typeId])) {
117 $types[$typeId] = $this->extractTypeFromRow($row);
118 }
119
120 $fieldId = (int)$row['ezcontentclass_attribute_id'];
121
122 if ($fieldId && !isset($fields[$fieldId])) {
123 $fieldDataRows = array_filter($rows, function (array $row) use ($fieldId) {
124 return (int) $row['ezcontentclass_attribute_id'] === (int) $fieldId;
125 });
126
127 $multilingualData = $this->extractMultilingualData($fieldDataRows);
128
129 $types[$typeId]->fieldDefinitions[] = $fields[$fieldId] = $this->extractFieldFromRow($row, $multilingualData);
130 }
131
132 $groupId = (int)$row['ezcontentclass_classgroup_group_id'];
133 if (!in_array($groupId, $types[$typeId]->groupIds)) {
134 $types[$typeId]->groupIds[] = $groupId;
135 }
136 }
137
138 foreach ($types as $type) {
139 sort($type->groupIds);
140 }
141
142 if ($keepTypeIdAsKey) {
143 return $types;
144 }
145
146 // Re-index $types to avoid people relying on ID keys
147 return array_values($types);
148 }
149
150 public function extractMultilingualData(array $fieldDefinitionRows): array
151 {
152 return array_map(function (array $fieldData) {
153 return [
154 'ezcontentclass_attribute_multilingual_name' => $fieldData['ezcontentclass_attribute_multilingual_name'] ?? null,
155 'ezcontentclass_attribute_multilingual_description' => $fieldData['ezcontentclass_attribute_multilingual_description'] ?? null,
156 'ezcontentclass_attribute_multilingual_language_id' => $fieldData['ezcontentclass_attribute_multilingual_language_id'] ?? null,
157 'ezcontentclass_attribute_multilingual_data_text' => $fieldData['ezcontentclass_attribute_multilingual_data_text'] ?? null,
158 'ezcontentclass_attribute_multilingual_data_json' => $fieldData['ezcontentclass_attribute_multilingual_data_json'] ?? null,
159 ];
160 }, $fieldDefinitionRows);
161 }
162
170 protected function extractTypeFromRow(array $row)
171 {
172 $type = new Type();
173
174 $type->id = (int)$row['ezcontentclass_id'];
175 $type->status = (int)$row['ezcontentclass_version'];
176 $type->name = $this->unserialize($row['ezcontentclass_serialized_name_list']);
177 $type->description = $this->unserialize($row['ezcontentclass_serialized_description_list']);
178 // Unset redundant data
179 unset(
180 $type->name['always-available'],
181 $type->name[0],
182 $type->description['always-available'],
183 $type->description[0]
184 );
185 $type->identifier = $row['ezcontentclass_identifier'];
186 $type->created = (int)$row['ezcontentclass_created'];
187 $type->modified = (int)$row['ezcontentclass_modified'];
188 $type->modifierId = (int)$row['ezcontentclass_modifier_id'];
189 $type->creatorId = (int)$row['ezcontentclass_creator_id'];
190 $type->remoteId = $row['ezcontentclass_remote_id'];
191 $type->urlAliasSchema = $row['ezcontentclass_url_alias_name'];
192 $type->nameSchema = $row['ezcontentclass_contentobject_name'];
193 $type->isContainer = ($row['ezcontentclass_is_container'] == 1);
194 $type->initialLanguageId = (int)$row['ezcontentclass_initial_language_id'];
195 $type->defaultAlwaysAvailable = ($row['ezcontentclass_always_available'] == 1);
196 $type->sortField = (int)$row['ezcontentclass_sort_field'];
197 $type->sortOrder = (int)$row['ezcontentclass_sort_order'];
198 $type->languageCodes = $this->maskGenerator->extractLanguageCodesFromMask((int)$row['ezcontentclass_language_mask']);
199
200 $type->groupIds = [];
201 $type->fieldDefinitions = [];
202
203 return $type;
204 }
205
214 public function extractFieldFromRow(array $row, array $multilingualData = [])
215 {
216 $storageFieldDef = $this->extractStorageFieldFromRow($row, $multilingualData);
217
218 $field = new FieldDefinition();
219
220 $field->id = (int)$row['ezcontentclass_attribute_id'];
221 $field->name = $this->unserialize($row['ezcontentclass_attribute_serialized_name_list']);
222 $field->description = $this->unserialize($row['ezcontentclass_attribute_serialized_description_list']);
223 // Unset redundant data
224 unset(
225 $field->name['always-available'],
226 $field->name[0],
227 $field->description['always-available'],
228 $field->description[0]
229 );
230 $field->identifier = $row['ezcontentclass_attribute_identifier'];
231 $field->fieldGroup = $row['ezcontentclass_attribute_category'];
232 $field->fieldType = $row['ezcontentclass_attribute_data_type_string'];
233 $field->isTranslatable = ($row['ezcontentclass_attribute_can_translate'] == 1);
234 $field->isRequired = $row['ezcontentclass_attribute_is_required'] == 1;
235 $field->isInfoCollector = $row['ezcontentclass_attribute_is_information_collector'] == 1;
236
237 $field->isSearchable = (bool)$row['ezcontentclass_attribute_is_searchable'];
238 $field->position = (int)$row['ezcontentclass_attribute_placement'];
239
240 $mainLanguageCode = $this->maskGenerator->extractLanguageCodesFromMask((int)$row['ezcontentclass_initial_language_id']);
241 $field->mainLanguageCode = array_shift($mainLanguageCode);
242
243 $this->toFieldDefinition($storageFieldDef, $field);
244
245 return $field;
246 }
247
256 protected function extractStorageFieldFromRow(array $row, array $multilingualDataRow = [])
257 {
258 $storageFieldDef = new StorageFieldDefinition();
259
260 $storageFieldDef->dataFloat1 = isset($row['ezcontentclass_attribute_data_float1'])
261 ? (float)$row['ezcontentclass_attribute_data_float1']
262 : null;
263 $storageFieldDef->dataFloat2 = isset($row['ezcontentclass_attribute_data_float2'])
264 ? (float)$row['ezcontentclass_attribute_data_float2']
265 : null;
266 $storageFieldDef->dataFloat3 = isset($row['ezcontentclass_attribute_data_float3'])
267 ? (float)$row['ezcontentclass_attribute_data_float3']
268 : null;
269 $storageFieldDef->dataFloat4 = isset($row['ezcontentclass_attribute_data_float4'])
270 ? (float)$row['ezcontentclass_attribute_data_float4']
271 : null;
272 $storageFieldDef->dataInt1 = isset($row['ezcontentclass_attribute_data_int1'])
273 ? (int)$row['ezcontentclass_attribute_data_int1']
274 : null;
275 $storageFieldDef->dataInt2 = isset($row['ezcontentclass_attribute_data_int2'])
276 ? (int)$row['ezcontentclass_attribute_data_int2']
277 : null;
278 $storageFieldDef->dataInt3 = isset($row['ezcontentclass_attribute_data_int3'])
279 ? (int)$row['ezcontentclass_attribute_data_int3']
280 : null;
281 $storageFieldDef->dataInt4 = isset($row['ezcontentclass_attribute_data_int4'])
282 ? (int)$row['ezcontentclass_attribute_data_int4']
283 : null;
284 $storageFieldDef->dataText1 = $row['ezcontentclass_attribute_data_text1'];
285 $storageFieldDef->dataText2 = $row['ezcontentclass_attribute_data_text2'];
286 $storageFieldDef->dataText3 = $row['ezcontentclass_attribute_data_text3'];
287 $storageFieldDef->dataText4 = $row['ezcontentclass_attribute_data_text4'];
288 $storageFieldDef->dataText5 = $row['ezcontentclass_attribute_data_text5'];
289 $storageFieldDef->serializedDataText = $row['ezcontentclass_attribute_serialized_data_text'];
290
291 foreach ($multilingualDataRow as $languageDataRow) {
292 $languageCodes = $this->maskGenerator->extractLanguageCodesFromMask((int)$languageDataRow['ezcontentclass_attribute_multilingual_language_id']);
293
294 if (empty($languageCodes)) {
295 continue;
296 }
297 $languageCode = reset($languageCodes);
298
299 $multilingualData = new MultilingualStorageFieldDefinition();
300
301 $nameList = $this->unserialize($row['ezcontentclass_attribute_serialized_name_list']);
302 $name = $nameList[$languageCode] ?? reset($nameList);
303 $description = $this->unserialize($row['ezcontentclass_attribute_serialized_description_list'])[$languageCode] ?? null;
304
305 $multilingualData->name = $languageDataRow['ezcontentclass_attribute_multilingual_name'] ?? $name;
306 $multilingualData->description = $languageDataRow['ezcontentclass_attribute_multilingual_description'] ?? $description;
307 $multilingualData->dataText = $languageDataRow['ezcontentclass_attribute_multilingual_data_text'];
308 $multilingualData->dataJson = $languageDataRow['ezcontentclass_attribute_multilingual_data_json'];
309 $multilingualData->languageId = (int)$languageDataRow['ezcontentclass_attribute_multilingual_language_id'];
310
311 $storageFieldDef->multilingualData[$languageCode] = $multilingualData;
312 }
313
314 return $storageFieldDef;
315 }
316
324 public function createTypeFromCreateStruct(CreateStruct $createStruct)
325 {
326 $type = new Type();
327
328 $type->name = $createStruct->name;
329 $type->status = $createStruct->status;
330 $type->description = $createStruct->description;
331 $type->identifier = $createStruct->identifier;
332 $type->created = $createStruct->created;
333 $type->modified = $createStruct->modified;
334 $type->creatorId = $createStruct->creatorId;
335 $type->modifierId = $createStruct->modifierId;
336 $type->remoteId = $createStruct->remoteId;
337 $type->urlAliasSchema = $createStruct->urlAliasSchema;
338 $type->nameSchema = $createStruct->nameSchema;
339 $type->isContainer = $createStruct->isContainer;
340 $type->initialLanguageId = $createStruct->initialLanguageId;
341 $type->groupIds = $createStruct->groupIds;
342 $type->fieldDefinitions = $createStruct->fieldDefinitions;
343 $type->defaultAlwaysAvailable = $createStruct->defaultAlwaysAvailable;
344 $type->sortField = $createStruct->sortField;
345 $type->sortOrder = $createStruct->sortOrder;
346 $type->languageCodes = array_keys($createStruct->name);
347
348 return $type;
349 }
350
358 public function createCreateStructFromType(Type $type)
359 {
360 $createStruct = new CreateStruct();
361
362 $createStruct->name = $type->name;
363 $createStruct->status = $type->status;
364 $createStruct->description = $type->description;
365 $createStruct->identifier = $type->identifier;
366 $createStruct->created = $type->created;
367 $createStruct->modified = $type->modified;
368 $createStruct->creatorId = $type->creatorId;
369 $createStruct->modifierId = $type->modifierId;
370 $createStruct->remoteId = $type->remoteId;
371 $createStruct->urlAliasSchema = $type->urlAliasSchema;
372 $createStruct->nameSchema = $type->nameSchema;
373 $createStruct->isContainer = $type->isContainer;
374 $createStruct->initialLanguageId = $type->initialLanguageId;
375 $createStruct->groupIds = $type->groupIds;
376 $createStruct->fieldDefinitions = $type->fieldDefinitions;
377 $createStruct->defaultAlwaysAvailable = $type->defaultAlwaysAvailable;
378 $createStruct->sortField = $type->sortField;
379 $createStruct->sortOrder = $type->sortOrder;
380
381 return $createStruct;
382 }
383
391 public function createUpdateStructFromType(Type $type)
392 {
393 $updateStruct = new UpdateStruct();
394
395 $updateStruct->name = $type->name;
396 $updateStruct->description = $type->description;
397 $updateStruct->identifier = $type->identifier;
398 $updateStruct->modified = $type->modified;
399 $updateStruct->modifierId = $type->modifierId;
400 $updateStruct->remoteId = $type->remoteId;
401 $updateStruct->urlAliasSchema = $type->urlAliasSchema;
402 $updateStruct->nameSchema = $type->nameSchema;
403 $updateStruct->isContainer = $type->isContainer;
404 $updateStruct->initialLanguageId = $type->initialLanguageId;
405 $updateStruct->defaultAlwaysAvailable = $type->defaultAlwaysAvailable;
406 $updateStruct->sortField = $type->sortField;
407 $updateStruct->sortOrder = $type->sortOrder;
408
409 return $updateStruct;
410 }
411
418 public function toStorageFieldDefinition(
419 FieldDefinition $fieldDef,
420 StorageFieldDefinition $storageFieldDef
421 ) {
422 foreach (array_keys($fieldDef->name) as $languageCode) {
423 $multilingualData = new MultilingualStorageFieldDefinition();
424 $multilingualData->name = $fieldDef->name[$languageCode];
425 $multilingualData->description = $fieldDef->description[$languageCode] ?? null;
426 $multilingualData->languageId =
427 $this->maskGenerator->generateLanguageMaskFromLanguageCodes([$languageCode]);
428
429 $storageFieldDef->multilingualData[$languageCode] = $multilingualData;
430 }
431
432 $converter = $this->converterRegistry->getConverter(
433 $fieldDef->fieldType
434 );
435
436 $converter->toStorageFieldDefinition(
437 $fieldDef,
438 $storageFieldDef
439 );
440 }
441
448 public function toFieldDefinition(
449 StorageFieldDefinition $storageFieldDef,
450 FieldDefinition $fieldDef
451 ) {
452 $converter = $this->converterRegistry->getConverter(
453 $fieldDef->fieldType
454 );
455 $converter->toFieldDefinition(
456 $storageFieldDef,
457 $fieldDef
458 );
459 }
460
469 protected function unserialize($serialized, $default = [])
470 {
471 return $serialized
472 ? unserialize($serialized)
473 : $default;
474 }
475
481 public function createTypeFromUpdateStruct(UpdateStruct $updateStruct): Type
482 {
483 $type = new Type();
484
485 $type->name = $updateStruct->name;
486 $type->description = $updateStruct->description;
487 $type->identifier = $updateStruct->identifier;
488 $type->modified = $updateStruct->modified;
489 $type->modifierId = $updateStruct->modifierId;
490 $type->remoteId = $updateStruct->remoteId;
491 $type->urlAliasSchema = $updateStruct->urlAliasSchema;
492 $type->nameSchema = $updateStruct->nameSchema;
493 $type->isContainer = $updateStruct->isContainer;
494 $type->initialLanguageId = $updateStruct->initialLanguageId;
495 $type->defaultAlwaysAvailable = $updateStruct->defaultAlwaysAvailable;
496 $type->sortField = $updateStruct->sortField;
497 $type->sortOrder = $updateStruct->sortOrder;
498 $type->languageCodes = array_keys($updateStruct->name);
499
500 return $type;
501 }
502
503 public function extractMultilingualDataFromRows(array $mlFieldDefinitionsRows): array
504 {
505 $mlFieldDefinitionData = [];
506 foreach ($mlFieldDefinitionsRows as $row) {
507 $mlStorageFieldDefinition = new MultilingualStorageFieldDefinition();
508 $mlStorageFieldDefinition->name = $row['ezcontentclass_attribute_multilingual_name'];
509 $mlStorageFieldDefinition->description = $row['ezcontentclass_attribute_multilingual_description'];
510 $mlStorageFieldDefinition->languageId = $row['ezcontentclass_attribute_multilingual_language_id'];
511 $mlStorageFieldDefinition->dataText = $row['ezcontentclass_attribute_multilingual_data_text'];
512 $mlStorageFieldDefinition->dataJson = $row['ezcontentclass_attribute_multilingual_data_json'];
513
514 $mlFieldDefinitionData[] = $mlStorageFieldDefinition;
515 }
516
517 return $mlFieldDefinitionData;
518 }
519 }
eZ\Publish\Core\Persistence\Legacy\Content\FieldValue\ConverterRegistry
Definition: ConverterRegistry.php:12
eZ\Publish\Core\Persistence\Legacy\Content\Language\MaskGenerator
Language MaskGenerator.
Definition: MaskGenerator.php:16
eZ\Publish\Core\Persistence\Legacy\Content\MultilingualStorageFieldDefinition
Definition: MultilingualStorageFieldDefinition.php:14
eZ\Publish\Core\Persistence\Legacy\Content\StorageFieldDefinition
Definition: StorageFieldDefinition.php:12
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper
Mapper for Content Type Handler.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:26
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\createCreateStructFromType
createCreateStructFromType(Type $type)
Creates a create struct from an existing $type.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:358
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractMultilingualData
extractMultilingualData(array $fieldDefinitionRows)
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:150
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractTypeFromRow
extractTypeFromRow(array $row)
Creates a Type from the data in $row.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:170
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\toFieldDefinition
toFieldDefinition(StorageFieldDefinition $storageFieldDef, FieldDefinition $fieldDef)
Maps a FieldDefinition from the given $storageFieldDef.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:448
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractMultilingualDataFromRows
extractMultilingualDataFromRows(array $mlFieldDefinitionsRows)
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:503
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\$converterRegistry
$converterRegistry
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:32
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractFieldFromRow
extractFieldFromRow(array $row, array $multilingualData=[])
Creates a FieldDefinition from the data in $row.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:214
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\__construct
__construct(ConverterRegistry $converterRegistry, MaskGenerator $maskGenerator)
Creates a new content type mapper.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:43
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractStorageFieldFromRow
extractStorageFieldFromRow(array $row, array $multilingualDataRow=[])
Extracts a StorageFieldDefinition from $row.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:256
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractTypesFromRows
extractTypesFromRows(array $rows, bool $keepTypeIdAsKey=false)
Extracts types and related data from the given $rows.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:109
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\createTypeFromUpdateStruct
createTypeFromUpdateStruct(UpdateStruct $updateStruct)
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:481
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\extractGroupsFromRows
extractGroupsFromRows(array $rows)
Extracts Group objects from the given $rows.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:82
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\createUpdateStructFromType
createUpdateStructFromType(Type $type)
Creates an update struct from an existing $type.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:391
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\unserialize
unserialize($serialized, $default=[])
Wrap unserialize to set default value in case of empty serialization.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:469
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\createTypeFromCreateStruct
createTypeFromCreateStruct(CreateStruct $createStruct)
Maps properties from $struct to $type.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:324
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\createGroupFromCreateStruct
createGroupFromCreateStruct(GroupCreateStruct $struct)
Creates a Group from its create struct.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:58
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\toStorageFieldDefinition
toStorageFieldDefinition(FieldDefinition $fieldDef, StorageFieldDefinition $storageFieldDef)
Maps $fieldDef to the legacy storage specific StorageFieldDefinition.
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:418
eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper\$maskGenerator
$maskGenerator
Definition: Publish/Core/Persistence/Legacy/Content/Type/Mapper.php:35
eZ\Publish\SPI\Persistence\Content\Location\CreateStruct
Definition: SPI/Persistence/Content/Location/CreateStruct.php:12
eZ\Publish\SPI\Persistence\Content\Location\UpdateStruct
Definition: Content/Location/UpdateStruct.php:12
eZ\Publish\SPI\Persistence\Content\Type\CreateStruct
Definition: SPI/Persistence/Content/Type/CreateStruct.php:13
eZ\Publish\SPI\Persistence\Content\Type\FieldDefinition
Definition: SPI/Persistence/Content/Type/FieldDefinition.php:18
eZ\Publish\SPI\Persistence\Content\Type\Group\CreateStruct
Definition: SPI/Persistence/Content/Type/Group/CreateStruct.php:12
eZ\Publish\SPI\Persistence\Content\Type\Group
Definition: Type/Group.php:12
eZ\Publish\SPI\Persistence\Content\Type\UpdateStruct
Definition: Content/Type/UpdateStruct.php:12
eZ\Publish\SPI\Persistence\Content\Type
SPI Persistence Content\Type value object.
Definition: SPI/Persistence/Content/Type.php:15
eZ\Publish\SPI\Persistence\Content\Type\$languageCodes
$languageCodes
Definition: SPI/Persistence/Content/Type.php:189
eZ\Publish\SPI\Persistence\Content\Type\$name
$name
Definition: SPI/Persistence/Content/Type.php:49
eZ\Publish\SPI\Persistence\Content\Type\$description
$description
Definition: SPI/Persistence/Content/Type.php:61
eZ\Publish\SPI\Persistence\Content\Type\Group
Definition: SPI/Persistence/Content/Type/Group/CreateStruct.php:7
eZ\Publish\SPI\Persistence\Content\Type
Definition: SPI/Persistence/Content/Type/CreateStruct.php:7
Copyright © 1998 – 2026 7x. All rights reserved. Licensed under the GNU GPLv2+.