PluginProbe
The Innovative Form Builder – IvyForms / 0.8
The Innovative Form Builder – IvyForms v0.8
1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 1.2 1.3
ivyforms / backend / src / Factory / FieldOptions / FieldOptionsFactory.php

FieldOptionsFactory.php in The Innovative Form Builder – IvyForms 0.8, at backend/src/Factory/FieldOptions/FieldOptionsFactory.php

52 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IvyForms\Factory\FieldOptions;
4
5 use IvyForms\Common\Exceptions\ValidationException;
6 use IvyForms\Entity\FieldOptions\FieldOptions as FieldOptionsEntity;
7 use IvyForms\ValueObjects\FieldOptions\FieldOptions;
8
9 class FieldOptionsFactory
10 {
11 /**
12 * @param array<string, mixed> $data
13 *
14 * @return FieldOptionsEntity
15 * @throws ValidationException
16 */
17 public static function create(array $data): FieldOptionsEntity
18 {
19 $fieldOptionsObject = new FieldOptions(
20 $data['id'] ?? 0,
21 $data['fieldId'],
22 $data['label'],
23 $data['value'],
24 $data['isDefault'] ?? false,
25 $data['position'] ?? 1
26 );
27
28 $fieldOptions = new FieldOptionsEntity($fieldOptionsObject);
29
30 if (isset($data['id'])) {
31 $fieldOptions->setId($data['id']);
32 }
33 if (isset($data['fieldId'])) {
34 $fieldOptions->setFieldId($data['fieldId']);
35 }
36 if (isset($data['label'])) {
37 $fieldOptions->setLabel($data['label']);
38 }
39 if (isset($data['value'])) {
40 $fieldOptions->setValue($data['value']);
41 }
42 if (isset($data['isDefault'])) {
43 $fieldOptions->setDefault($data['isDefault']);
44 }
45 if (isset($data['position'])) {
46 $fieldOptions->setPosition($data['position']);
47 }
48
49 return $fieldOptions;
50 }
51 }
52