С версии: 2.0
Автор: Richard Fullmer (richard.fullmer@opensoftdev.com)
Наследование: implements Doctrine\Common\Persistence\Mapping\ClassMetadataFactory
 /**
  * @param WriterHelper $writer
  * @param ClassMetadata $classMetadata
  * @param string $fieldName
  * @param mixed $fieldValue
  */
 private function writeElement(WriterHelper $writer, ClassMetadata $classMetadata, $fieldName, $fieldValue)
 {
     $fieldType = $classMetadata->getTypeOfField($fieldName);
     $mapping = $classMetadata->getFieldMapping($fieldName);
     $prefix = isset($mapping['prefix']) ? $mapping['prefix'] : null;
     if ($this->classMetadataFactory->hasMetadataFor($fieldType)) {
         if ($classMetadata->isCollection($fieldName)) {
             if ($classMetadata->hasFieldWrapping($fieldName)) {
                 $writer->startElement($mapping['wrapper'], $prefix);
             }
             foreach ($fieldValue as $value) {
                 $this->doMarshal($value, $writer, $mapping);
             }
             if ($classMetadata->hasFieldWrapping($fieldName)) {
                 $writer->endElement();
             }
         } else {
             $this->doMarshal($fieldValue, $writer, $mapping);
         }
     } else {
         if ($this->allowUnknownElements) {
             $this->doMarshal($fieldValue, $writer, $mapping);
         }
     }
 }
Пример #2
0
 /**
  * @param WriterHelper $writer
  * @param ClassMetadata $classMetadata
  * @param string $fieldName
  * @param mixed $fieldValue
  */
 private function _writeElement(WriterHelper $writer, ClassMetadata $classMetadata, $fieldName, $fieldValue)
 {
     $fieldType = $classMetadata->getTypeOfField($fieldName);
     if ($this->classMetadataFactory->hasMetadataFor($fieldType)) {
         if ($classMetadata->isCollection($fieldName)) {
             foreach ($fieldValue as $value) {
                 $this->doMarshal($value, $writer);
             }
         } else {
             $this->doMarshal($fieldValue, $writer);
         }
     }
 }
 /**
  * Returns the OXM mapping descriptor for a class.
  *
  * The class name must be the fully-qualified class name without a leading backslash
  * (as it is returned by get_class($obj)) or an aliased class name.
  *
  * Examples:
  * MyProject\Domain\User
  * sales:PriceRequest
  *
  * @return \Doctrine\OXM\Mapping\ClassMetadata
  * @internal Performance-sensitive method.
  */
 public function getClassMetadata($className)
 {
     return $this->metadataFactory->getMetadataFor($className);
 }