PluginProbe
The Innovative Form Builder – IvyForms / 1.5.1
The Innovative Form Builder – IvyForms v1.5.1
1.5.1 1.5 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 All 27 releases
← All changes | backend/src/Factory/FieldOptions/FieldOptionsFactory.php +51 -0 0.6.1 → 1.5.1 View file →
@@ -1,0 +1,51 @@
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 +}