/** * @backupStaticAttributes enabled */ public function testOverrideType() { Type::overrideType('string', 'Doctrine\\Tests\\Mocks\\TypeMock'); $typesMap = Type::getTypesMap(); $this->assertEquals('Doctrine\\Tests\\Mocks\\TypeMock', $typesMap['string']); $this->assertInstanceOf('Doctrine\\Tests\\Mocks\\TypeMock', Type::getType('string')); }
private function generateXmlEntityStubMethod(ClassMetadataInfo $metadata, $type, $fieldName, $typeHint = null) { $methodName = $type . Inflector::classify($fieldName); if ($this->hasMethod($methodName, $metadata)) { return; } $var = sprintf('%sMethodTemplate', $type); $template = self::${$var}; $variableType = $typeHint ? $typeHint . ' ' : null; $types = \Doctrine\OXM\Types\Type::getTypesMap(); $methodTypeHint = $typeHint && !isset($types[$typeHint]) ? '\\' . $typeHint . ' ' : null; $replacements = array('<description>' => ucfirst($type) . ' ' . $fieldName, '<methodTypeHint>' => $methodTypeHint, '<variableType>' => $variableType, '<variableName>' => Inflector::camelize($fieldName), '<methodName>' => $methodName, '<fieldName>' => $fieldName); $method = str_replace(array_keys($replacements), array_values($replacements), $template); return $this->prefixCodeWithSpaces($method); }
/** * {@inheritDoc} */ protected function wakeupReflection(BaseClassMetadata $class, ReflectionService $reflService) { /* @var $class ClassMetadata */ $class->wakeupReflection($reflService); $this->completeMappingTypeValidation($class->getName(), $class); $xmlNamespace = empty($class->xmlNamespaces) ? '' : $class->xmlNamespaces[0]['url']; foreach ($class->xmlNamespaces as $namespaceData) { if (empty($namespaceData['prefix'])) { $xmlNamespace = $namespaceData['url']; } } $xmlName = $class->getXmlName(); if (!empty($class->parent)) { $parent = $this->getMetadataFor($class->parent); if (!empty($parent)) { $this->alternativeClassMap[$parent->getName()][$xmlNamespace] = $class->getName(); } } if (!$class->isMappedSuperclass) { $this->xmlToClassMap[$xmlName][$xmlNamespace] = $class->getName(); } if ($this->isEntity($class)) { foreach ($class->getFieldMappings() as $fieldMapping) { if (!empty($fieldMapping['wrapper'])) { $wrapperXmlName = $fieldMapping['wrapper']; $types = Type::getTypesMap(); $type = (string) $fieldMapping['type']; if (isset($types[$type])) { $this->wrapperXmlToClassMap[$wrapperXmlName][$class->getXmlName()] = NULL; } else { $this->wrapperXmlToClassMap[$wrapperXmlName][$class->getXmlName()] = $fieldMapping['type']; } } } } }