Skip to content

Commit 83e37e5

Browse files
authored
Update DTOBaseBuilder.php
1 parent 80bad98 commit 83e37e5

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

src/DTOBaseBuilder.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,32 @@ public function build($data)
4040
}
4141
}
4242

43+
/**
44+
* Check if given array has given key
45+
* @param $array
46+
* @param $field
47+
*/
48+
private function arrayHasField($array, $field) {
49+
return is_array($array) && isset($array[$field]);
50+
}
51+
52+
/**
53+
* Check if given object has given property
54+
* @param $object
55+
* @param $field
56+
*/
57+
private function objectHasField($object, $field) {
58+
return is_object($object) && isset($object->{$field});
59+
}
60+
4361
/**
4462
* Restrict internalDTO* fields in data
4563
* @param $data
4664
*/
4765
private function validateFieldNames($data) {
4866
$restrictedFields = ['internalDTOData', 'internalDTODefault'];
4967
foreach ($restrictedFields as $field) {
50-
if ((is_array($data) && isset($data[$field])) || (is_object($data) && isset($data->{$field}))) {
68+
if ($this->arrayHasField($data, $field) || $this->objectHasField($data, $field)) {
5169
throw new \InvalidArgumentException('internalDTO* fields are restricted');
5270
}
5371
}

0 commit comments

Comments
 (0)