/** * Gets the names of all mapped classes known to this driver. * * @return array The names of all mapped classes known to this driver. */ public function getAllClassNames() { $classNames = []; $driverClasses = []; /** * @var $driver FileDriver */ foreach ($this->drivers as $driver) { $namespace = $driver->getGlobalBasename(); $oid = spl_object_hash($driver); if (!isset($driverClasses[$oid])) { $driverClasses[$oid] = $driver->getAllClassNames(); } foreach ($driverClasses[$oid] as $className) { if ($this->classNameIsAllowed($className, $namespace)) { $classNames[$className] = true; } } } if (null !== $this->defaultDriver) { foreach ($this->defaultDriver->getAllClassNames() as $className) { $classNames[$className] = true; } } return array_keys($classNames); }
/** * Forces the factory to load the metadata of all classes known to the underlying * mapping driver. * * @return array The ClassMetadata instances of all mapped classes. */ public function getAllMetadata() { $metadata = array(); foreach ($this->driver->getAllClassNames() as $className) { $metadata[] = $this->getMetadataFor($className); } return $metadata; }
/** * Forces the factory to load the metadata of all classes known to the underlying * mapping driver. * * @return array The ClassMetadata instances of all mapped classes. */ public function getAllMetadata() { // FIXXME Should this be implemented here or in the driver (chain)? $metadata = array(); foreach ($this->driver->getAllClassNames() as $className) { $metadata[] = $this->getMetadataFor($className); } $this->validate($metadata); return $metadata; }
protected function getChildClasses(MappingDriver $driver, $currentClass) { $classes = array(); foreach ($driver->getAllClassNames() as $className) { if (!is_subclass_of($className, $currentClass)) { continue; } $classes[] = $className; } return $classes; }
/** * @param \Doctrine\Common\Persistence\Mapping\Driver\MappingDriver * @param string * @return array */ private function getChildClasses(MappingDriver $driver, $currentClass) { $classes = array(); foreach ($driver->getAllClassNames() as $className) { if (!ClassType::from($className)->isSubclassOf($currentClass)) { continue; } $classes[] = $className; } return $classes; }
function it_configures_the_mappings_of_a_model_that_overrides_an_original_model($configuration, ClassMetadataInfo $metadataInfo, MappingDriver $mappingDriver) { $originalQux1 = __NAMESPACE__ . '\\OriginalQux1'; $originalQux2 = __NAMESPACE__ . '\\OriginalQux2'; $overrideQux1 = __NAMESPACE__ . '\\OverrideQux1'; $overrideQux2 = __NAMESPACE__ . '\\OverrideQux2'; $mappingDriver->getAllClassNames()->willReturn([$originalQux1]); $configuration->getMetadataDriverImpl()->willReturn($mappingDriver); $metadataInfo->getName()->willReturn($overrideQux1); $mappingDriver->loadMetadataForClass($originalQux1, Argument::any())->shouldBeCalled(); $overrides = [['original' => $originalQux1, 'override' => $overrideQux1], ['original' => $originalQux2, 'override' => $overrideQux2]]; $this->configure($metadataInfo, $overrides, $configuration); }
/** * Adds a default discriminator map if no one is given * * If an entity is of any inheritance type and does not contain a * discriminator map, then the map is generated automatically. This process * is expensive computation wise. * * The automatically generated discriminator map contains the lowercase short name of * each class as key. * * @param \Doctrine\ORM\Mapping\ClassMetadata $class * * @throws MappingException */ private function addDefaultDiscriminatorMap(ClassMetadata $class) { $allClasses = $this->driver->getAllClassNames(); $fqcn = $class->getName(); $map = array($this->getShortName($class->name) => $fqcn); $duplicates = array(); foreach ($allClasses as $subClassCandidate) { if (is_subclass_of($subClassCandidate, $fqcn)) { $shortName = $this->getShortName($subClassCandidate); if (isset($map[$shortName])) { $duplicates[] = $shortName; } $map[$shortName] = $subClassCandidate; } } if ($duplicates) { throw MappingException::duplicateDiscriminatorEntry($class->name, $duplicates, $map); } $class->setDiscriminatorMap($map); }
/** * {@inheritDoc} */ public function getAllClassNames() { $classNames = []; $driverClasses = []; /* @var $driver MappingDriver */ foreach ($this->drivers as $namespace => $driver) { $oid = spl_object_hash($driver); if (!isset($driverClasses[$oid])) { $driverClasses[$oid] = $driver->getAllClassNames(); } foreach ($driverClasses[$oid] as $className) { if (strpos($className, $namespace) === 0) { $classNames[$className] = true; } } } if (null !== $this->defaultDriver) { foreach ($this->defaultDriver->getAllClassNames() as $className) { $classNames[$className] = true; } } return array_keys($classNames); }
/** * {@inheritDoc} */ public function getAllClassNames() { return array_merge($this->builtinDriver->getAllClassNames(), $this->wrappedDriver->getAllClassNames()); }
/** * Gets the names of all mapped classes known to this driver. * * @return array The names of all mapped classes known to this driver. */ public function getAllClassNames() { return array_intersect($this->exposedEntityClasses, $this->innerDriver->getAllClassNames()); }
/** * @inheritdoc */ public function getAllClassNames() { return array_intersect($this->entityClasses, $this->wrapped->getAllClassNames()); }