/** * Return true if $request_body contains a protected field. * * @param EntityInterface|string $object_or_object_class * @param array $request_body * @return bool */ private function requestBodyContainsProtectedFields($object_or_object_class, array $request_body) { if ($object_or_object_class instanceof EntityInterface) { $protected_fields = $object_or_object_class instanceof ProtectedFieldsInterface ? $object_or_object_class->getProtectedFields() : []; } elseif (is_string($object_or_object_class)) { $object = $this->pool->produce($object_or_object_class, [], false); $protected_fields = $object instanceof ProtectedFieldsInterface ? $object->getProtectedFields() : []; } else { throw new InvalidArgumentException('Valid object instance of object class expected'); } foreach (array_keys($request_body) as $field) { if (in_array($field, $protected_fields)) { return true; } } return false; }