mappingNotFoundForClass() публичный статический Метод

public static mappingNotFoundForClass ( $className )
Пример #1
0
 /**
  * INTERNAL: Performance sensitive method
  *
  * @throws MarshallerException
  * @param object $mappedObject
  * @param WriterHelper $writer
  * @return void
  */
 private function doMarshal($mappedObject, WriterHelper $writer)
 {
     $className = get_class($mappedObject);
     $classMetadata = $this->classMetadataFactory->getMetadataFor($className);
     if (!$this->classMetadataFactory->hasMetadataFor($className)) {
         throw MarshallerException::mappingNotFoundForClass($className);
     }
     // PreMarshall Hook
     if ($classMetadata->hasLifecycleCallbacks(Events::preMarshal)) {
         $classMetadata->invokeLifecycleCallbacks(Events::preMarshal, $mappedObject);
     }
     $writer->startElement($classMetadata->getXmlName());
     $namespaces = $classMetadata->getXmlNamespaces();
     if (!empty($namespaces)) {
         foreach ($namespaces as $namespace) {
             $writer->writeNamespace($namespace['url'], $namespace['prefix']);
         }
     }
     // build ordered field mappings for this class
     $fieldMappings = $classMetadata->getFieldMappings();
     $orderedMap = array();
     if (!empty($fieldMappings)) {
         foreach ($fieldMappings as $fieldMapping) {
             $orderedMap[$fieldMapping['node']][] = $fieldMapping;
         }
     }
     // do attributes
     if (array_key_exists(ClassMetadata::XML_ATTRIBUTE, $orderedMap)) {
         foreach ($orderedMap[ClassMetadata::XML_ATTRIBUTE] as $fieldMapping) {
             $fieldName = $fieldMapping['fieldName'];
             $fieldValue = $classMetadata->getFieldValue($mappedObject, $fieldName);
             if ($classMetadata->isRequired($fieldName) && $fieldValue === null) {
                 throw MarshallerException::fieldRequired($className, $fieldName);
             }
             if ($fieldValue !== null || $classMetadata->isNillable($fieldName)) {
                 $this->_writeAttribute($writer, $classMetadata, $fieldName, $fieldValue);
             }
         }
     }
     // do text
     if (array_key_exists(ClassMetadata::XML_TEXT, $orderedMap)) {
         foreach ($orderedMap[ClassMetadata::XML_TEXT] as $fieldMapping) {
             $fieldName = $fieldMapping['fieldName'];
             $fieldValue = $classMetadata->getFieldValue($mappedObject, $fieldName);
             if ($classMetadata->isRequired($fieldName) && $fieldValue === null) {
                 throw MarshallerException::fieldRequired($className, $fieldName);
             }
             if ($fieldValue !== null || $classMetadata->isNillable($fieldName)) {
                 $this->_writeText($writer, $classMetadata, $fieldName, $fieldValue);
             }
         }
     }
     // do elements
     if (array_key_exists(ClassMetadata::XML_ELEMENT, $orderedMap)) {
         foreach ($orderedMap[ClassMetadata::XML_ELEMENT] as $fieldMapping) {
             $fieldName = $fieldMapping['fieldName'];
             $fieldValue = $classMetadata->getFieldValue($mappedObject, $fieldName);
             if ($classMetadata->isRequired($fieldName) && $fieldValue === null) {
                 throw MarshallerException::fieldRequired($className, $fieldName);
             }
             if ($fieldValue !== null || $classMetadata->isNillable($fieldName)) {
                 $this->_writeElement($writer, $classMetadata, $fieldName, $fieldValue);
             }
         }
     }
     // PostMarshal hook
     if ($classMetadata->hasLifecycleCallbacks(Events::postMarshal)) {
         $classMetadata->invokeLifecycleCallbacks(Events::postMarshal, $mappedObject);
     }
     $writer->endElement();
 }
 private function doMarshalUnknownElement($mappedObject, WriterHelper $writer, $fieldMapping = NULL)
 {
     $className = get_class($mappedObject);
     if ($className != 'stdClass' || !isset($mappedObject->_name)) {
         // We can't handle this
         throw MarshallerException::mappingNotFoundForClass($className);
     }
     $writer->startElement($mappedObject->_name);
     if (isset($mappedObject->_attrs)) {
         foreach ($mappedObject->_attrs as $attrName => $attrValue) {
             $writer->writeAttribute($attrName, $attrValue);
         }
     }
     if (isset($mappedObject->_contents)) {
         foreach ($mappedObject->_contents as $content) {
             if (is_array($content)) {
                 // Some form of element
                 $this->doMarshal($content['element'], $writer);
             } else {
                 $writer->writeValue($content);
             }
         }
     }
     $writer->endElement();
 }