Doctrine\OXM\Marshaller\Helper\WriterHelper::writeNamespace PHP Method

writeNamespace() public method

public writeNamespace ( $url, $prefix = null )
    public function writeNamespace($url, $prefix = null)
    {
        $attributeName = 'xmlns';
        if ($prefix) {
            $attributeName .= ":{$prefix}";
        }
        $this->cursor->writeAttribute($attributeName, $url);
    }

Usage Example

Example #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();
 }