private function processFields(array $fields, &$presentFields = array()) { $return = array(); foreach ($fields as $field) { $fieldName = $field->name; if (!is_string($fieldName) || $fieldName === '') { continue; } unset($field->name); $return[$fieldName] = $field; if ($objectName = Text::getSubstringBefore($fieldName, '.')) { $presentFields[$objectName] = true; } } return $return; }