public function testGetNaming() { $this->assertEquals('myPrefixMyName', Util::getNaming('myName', 'myPrefix', 'prefix')); $this->assertEquals('myNameMyPostfix', Util::getNaming('myName', 'myPostfix', 'postfix')); $this->assertEquals('myNameMyPostfix', Util::getNaming('my_name', 'myPostfix', 'postfix', '_')); $this->assertEquals('myNameMyPostfix', Util::getNaming('my_name', 'my_postfix', 'postfix', '_')); }
/** * Get Foreign field * * @param string $name * @param string $entityName * @return string */ protected function getForeignField($name, $entityName) { $foreignField = $this->getMetadata()->get('entityDefs.' . $entityName . '.fields.' . $name); if ($foreignField['type'] != 'varchar') { $fieldDefs = $this->getMetadata()->get('fields.' . $foreignField['type']); $naming = isset($fieldDefs['naming']) ? $fieldDefs['naming'] : 'postfix'; if (isset($fieldDefs['actualFields']) && is_array($fieldDefs['actualFields'])) { $foreignFieldArray = array(); foreach ($fieldDefs['actualFields'] as $fieldName) { if ($fieldName != 'salutation') { $foreignFieldArray[] = Util::getNaming($name, $fieldName, $naming); } } return explode('|', implode('| |', $foreignFieldArray)); //add an empty string between items } } return $name; }
protected function convertActualFields($entityName, $fieldName, $fieldParams, $subFieldName, $fieldTypeMeta) { $subField = array(); $subField['params'] = $this->getInitValues($fieldParams); if (isset($fieldTypeMeta['fieldDefs'])) { $subField['params'] = Util::merge($subField['params'], $fieldTypeMeta['fieldDefs']); } //if empty field name, then use the main field if (trim($subFieldName) == '') { if (!isset($fieldTypeMeta['fieldDefs'])) { $GLOBALS['log']->critical('Empty field defs for [' . $entityName . ':' . $fieldName . '] using "actualFields". Main field [' . $fieldName . ']'); } $subField['name'] = $fieldName; $subField['naming'] = $fieldName; } else { if (!isset($fieldTypeMeta['fields'][$subFieldName])) { $GLOBALS['log']->critical('Empty field defs for [' . $entityName . ':' . $subFieldName . '] using "actualFields". Main field [' . $fieldName . ']'); } $namingType = isset($fieldTypeMeta['naming']) ? $fieldTypeMeta['naming'] : $this->defaultNaming; $subField['name'] = $subFieldName; $subField['naming'] = Util::getNaming($fieldName, $subFieldName, $namingType); if (isset($fieldTypeMeta['fields'][$subFieldName])) { $subField['params'] = Util::merge($subField['params'], $fieldTypeMeta['fields'][$subFieldName]); } } return $subField; }
/** * Get additional field list based on field definition in metadata 'fields' * * @param string $fieldName * @param array $fieldParams * @param array|null $definitionList * * @return array */ public function getAdditionalFieldList($fieldName, array $fieldParams, array $definitionList = null) { if (empty($fieldParams['type'])) { return; } $fieldType = $fieldParams['type']; $fieldDefinition = isset($definitionList[$fieldType]) ? $definitionList[$fieldType] : $this->getMetadata()->get('fields.' . $fieldType); if (!empty($fieldDefinition['fields']) && is_array($fieldDefinition['fields'])) { $copiedParams = array_intersect_key($fieldParams, array_flip($this->copiedDefParams)); $additionalFields = array(); //add additional fields foreach ($fieldDefinition['fields'] as $subFieldName => $subFieldParams) { $namingType = isset($fieldDefinition['naming']) ? $fieldDefinition['naming'] : $this->defaultNaming; $subFieldNaming = Util::getNaming($fieldName, $subFieldName, $namingType); $additionalFields[$subFieldNaming] = array_merge($copiedParams, $subFieldParams); } return $additionalFields; } }