コード例 #1
0
ファイル: ClassMetadata.php プロジェクト: jackbravo/doctrine
 /**
  * Validates & completes the given field mapping.
  *
  * @param array $mapping  The field mapping to validated & complete.
  * @return array  The validated and completed field mapping.
  */
 private function _validateAndCompleteFieldMapping(array &$mapping)
 {
     // Check mandatory fields
     if (!isset($mapping['fieldName'])) {
         throw MappingException::missingFieldName();
     }
     if (!isset($mapping['type'])) {
         throw MappingException::missingType();
     }
     // Complete fieldName and columnName mapping
     if (!isset($mapping['columnName'])) {
         $mapping['columnName'] = $mapping['fieldName'];
     }
     $lcColumnName = strtolower($mapping['columnName']);
     $this->columnNames[$mapping['fieldName']] = $mapping['columnName'];
     $this->fieldNames[$mapping['columnName']] = $mapping['fieldName'];
     $this->lcColumnToFieldNames[$lcColumnName] = $mapping['fieldName'];
     // Complete id mapping
     if (isset($mapping['id']) && $mapping['id'] === true) {
         if (!in_array($mapping['fieldName'], $this->identifier)) {
             $this->identifier[] = $mapping['fieldName'];
         }
         // Check for composite key
         if (!$this->isIdentifierComposite && count($this->identifier) > 1) {
             $this->isIdentifierComposite = true;
         }
     }
     // Store ReflectionProperty of mapped field
     $refProp = $this->reflClass->getProperty($mapping['fieldName']);
     $refProp->setAccessible(true);
     $this->reflFields[$mapping['fieldName']] = $refProp;
 }