Documentation

ClassMetadataFactory extends ClassMetadataFactory
in package

The ClassMetadataFactory is used to create ClassMetadata objects that contain all the metadata mapping information of a class which describes how a class should be mapped to a relational database.

Table of Contents

Properties

$cacheSalt  : string
Salt used by specific Object Manager implementation.
$initialized  : bool
$cache  : CacheItemPoolInterface|null
$driver  : MappingDriver
$em  : EntityManagerInterface|null
$embeddablesActiveNesting  : array<string|int, mixed>
$evm  : EventManager
$loadedMetadata  : array<string, ClassMetadata>
$proxyClassNameResolver  : ProxyClassNameResolver|null
$reflectionService  : ReflectionService|null
$targetPlatform  : AbstractPlatform|null

Methods

getAllMetadata()  : array<string|int, ClassMetadata>
Forces the factory to load the metadata of all classes known to the underlying mapping driver.
getLoadedMetadata()  : array<string|int, ClassMetadata>
Returns an array of all the loaded metadata currently in memory.
getMetadataFor()  : ClassMetadata
Gets the class metadata descriptor for a class.
getReflectionService()  : ReflectionService
Gets the reflection service associated with this metadata factory.
hasMetadataFor()  : bool
Checks whether the factory has the metadata for a class loaded already.
isTransient()  : bool
Returns whether the class with the specified name should have its metadata loaded.
setCache()  : void
setEntityManager()  : void
setMetadataFor()  : void
Sets the metadata descriptor for a specific class.
setProxyClassNameResolver()  : void
setReflectionService()  : void
Sets the reflectionService.
doLoadMetadata()  : void
Actually loads the metadata from the underlying metadata.
getCache()  : CacheItemPoolInterface|null
getCacheKey()  : string
getDriver()  : MappingDriver
Returns the mapping driver implementation.
getFqcnFromAlias()  : class-string
getParentClasses()  : array<string|int, string>
Gets an array of parent classes for the given entity class.
initialize()  : void
Lazy initialization of this stuff, especially the metadata driver, since these are not needed at all when a metadata cache is active.
initializeReflection()  : void
Initializes Reflection after ClassMetadata was constructed.
isEntity()  : bool
Checks whether the class metadata is an entity.
loadMetadata()  : array<int, string>
Loads the metadata of the class in question and all it's ancestors whose metadata is still not loaded.
newClassMetadataInstance()  : ClassMetadata<string|int, T>
Creates a new ClassMetadata instance for the given class name.
onNotFoundMetadata()  : ClassMetadata|null
Provides a fallback hook for loading metadata when loading failed due to reflection/mapping exceptions
validateRuntimeMetadata()  : void
Validate runtime metadata is correctly defined.
wakeupReflection()  : void
Wakes up reflection after ClassMetadata gets unserialized from cache.
addDefaultDiscriminatorMap()  : void
Adds a default discriminator map if no one is given
addInheritedEmbeddedClasses()  : void
addInheritedFields()  : void
Adds inherited fields to the subclass mapping.
addInheritedIndexes()  : void
Copy the table indices from the parent class superclass to the child class
addInheritedNamedNativeQueries()  : void
Adds inherited named native queries to the subclass mapping.
addInheritedNamedQueries()  : void
Adds inherited named queries to the subclass mapping.
addInheritedRelations()  : void
Adds inherited association mappings to the subclass mapping.
addInheritedSqlResultSetMappings()  : void
Adds inherited sql result set mappings to the subclass mapping.
addMappingInheritanceInformation()  : void
Puts the `inherited` and `declared` values into mapping information for fields, associations and embedded classes.
addNestedEmbeddedClasses()  : void
Adds nested embedded classes metadata to a parent class.
completeIdGeneratorMapping()  : void
Completes the ID generator mapping. If "auto" is specified we choose the generator most appropriate for the targeted database platform.
createDefaultProxyClassNameResolver()  : void
determineIdGeneratorStrategy()  : int
findAbstractEntityClassesNotListedInDiscriminatorMap()  : void
getRealClass()  : string
Gets the real class name of a class name that could be a proxy.
getShortName()  : string
Gets the lower-case short name of a class.
getTargetPlatform()  : AbstractPlatform
inheritIdGeneratorMapping()  : void
Inherits the ID generator mapping from a parent class.
normalizeClassName()  : string
Removes the prepended backslash of a class string to conform with how php outputs class names
peekIfIsMappedSuperclass()  : bool
truncateSequenceName()  : string

Properties

$embeddablesActiveNesting

private array<string|int, mixed> $embeddablesActiveNesting = []

Methods

getAllMetadata()

Forces the factory to load the metadata of all classes known to the underlying mapping driver.

public getAllMetadata() : array<string|int, ClassMetadata>
Return values
array<string|int, ClassMetadata>

The ClassMetadata instances of all mapped classes.

hasMetadataFor()

Checks whether the factory has the metadata for a class loaded already.

public hasMetadataFor(string $className) : bool
Parameters
$className : string
Return values
bool

TRUE if the metadata of the class in question is already loaded, FALSE otherwise.

isTransient()

Returns whether the class with the specified name should have its metadata loaded.

public isTransient(string $className) : bool
Parameters
$className : string
Return values
bool

setMetadataFor()

Sets the metadata descriptor for a specific class.

public setMetadataFor(string $className, ClassMetadata $class) : void

NOTE: This is only useful in very special cases, like when generating proxy classes.

Parameters
$className : string
$class : ClassMetadata
Tags
psalm-param

class-string $className

psalm-param

CMTemplate $class

doLoadMetadata()

Actually loads the metadata from the underlying metadata.

protected doLoadMetadata(mixed $class, mixed $parent, mixed $rootEntityFound, array<string|int, mixed> $nonSuperclassParents) : void
Parameters
$class : mixed
$parent : mixed
$rootEntityFound : mixed

True when there is another entity (non-mapped superclass) class above the current class in the PHP class hierarchy.

$nonSuperclassParents : array<string|int, mixed>

All parent class names that are not marked as mapped superclasses, with the direct parent class being the first and the root entity class the last element.

getCacheKey()

protected getCacheKey(string $realClassName) : string
Parameters
$realClassName : string
Return values
string

getFqcnFromAlias()

protected getFqcnFromAlias(mixed $namespaceAlias, mixed $simpleClassName) : class-string
Parameters
$namespaceAlias : mixed
$simpleClassName : mixed
Tags
deprecated

This method will be removed in ORM 3.0.

Return values
class-string

getParentClasses()

Gets an array of parent classes for the given entity class.

protected getParentClasses(string $name) : array<string|int, string>
Parameters
$name : string
Tags
psalm-param

class-string $name

psalm-return

list

Return values
array<string|int, string>

initialize()

Lazy initialization of this stuff, especially the metadata driver, since these are not needed at all when a metadata cache is active.

protected abstract initialize() : void

isEntity()

Checks whether the class metadata is an entity.

protected abstract isEntity(ClassMetadata $class) : bool

This method should return false for mapped superclasses or embedded classes.

Parameters
$class : ClassMetadata
Tags
psalm-param

CMTemplate $class

Return values
bool

loadMetadata()

Loads the metadata of the class in question and all it's ancestors whose metadata is still not loaded.

protected loadMetadata(string $name) : array<int, string>

Important: The class $name does not necessarily exist at this point here. Scenarios in a code-generation setup might have access to XML/YAML Mapping files without the actual PHP code existing here. That is why the ReflectionService interface should be used for reflection.

Parameters
$name : string

The name of the class for which the metadata should get loaded.

Tags
psalm-param

class-string $name

psalm-return

list

Return values
array<int, string>

newClassMetadataInstance()

Creates a new ClassMetadata instance for the given class name.

protected abstract newClassMetadataInstance(string $className) : ClassMetadata<string|int, T>
Parameters
$className : string
Tags
psalm-param

class-string<T> $className

psalm-return

CMTemplate

template

T of object

Return values
ClassMetadata<string|int, T>

onNotFoundMetadata()

Provides a fallback hook for loading metadata when loading failed due to reflection/mapping exceptions

protected onNotFoundMetadata(string $className) : ClassMetadata|null

Override this method to implement a fallback strategy for failed metadata loading

Parameters
$className : string
Tags
psalm-return

CMTemplate|null

Return values
ClassMetadata|null

addDefaultDiscriminatorMap()

Adds a default discriminator map if no one is given

private addDefaultDiscriminatorMap(ClassMetadata $class) : void

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.

Parameters
$class : ClassMetadata
Tags
throws
MappingException

addMappingInheritanceInformation()

Puts the `inherited` and `declared` values into mapping information for fields, associations and embedded classes.

private addMappingInheritanceInformation(AssociationMapping|EmbeddedClassMapping|FieldMapping &$mapping, ClassMetadata $parentClass) : void
Parameters
$mapping : AssociationMapping|EmbeddedClassMapping|FieldMapping
$parentClass : ClassMetadata

addNestedEmbeddedClasses()

Adds nested embedded classes metadata to a parent class.

private addNestedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata $parentClass, string $prefix) : void
Parameters
$subClass : ClassMetadata

Sub embedded class metadata to add nested embedded classes metadata from.

$parentClass : ClassMetadata

Parent class to add nested embedded classes metadata to.

$prefix : string

Embedded classes' prefix to use for nested embedded classes field names.

determineIdGeneratorStrategy()

private determineIdGeneratorStrategy(AbstractPlatform $platform) : int
Parameters
$platform : AbstractPlatform
Tags
psalm-return

ClassMetadata::GENERATOR_TYPE_SEQUENCE|ClassMetadata::GENERATOR_TYPE_IDENTITY

Return values
int

getRealClass()

Gets the real class name of a class name that could be a proxy.

private getRealClass(string $class) : string
Parameters
$class : string
Tags
psalm-param

class-string<Proxy<T>>|class-string<T> $class

psalm-return

class-string<T>

template

T of object

Return values
string

getShortName()

Gets the lower-case short name of a class.

private getShortName(string $className) : string
Parameters
$className : string
Tags
psalm-param

class-string $className

Return values
string

normalizeClassName()

Removes the prepended backslash of a class string to conform with how php outputs class names

private normalizeClassName(string $className) : string
Parameters
$className : string
Tags
psalm-param

class-string $className

psalm-return

class-string

Return values
string

peekIfIsMappedSuperclass()

private peekIfIsMappedSuperclass(class-string $className) : bool
Parameters
$className : class-string
Return values
bool

truncateSequenceName()

private truncateSequenceName(string $schemaElementName) : string
Parameters
$schemaElementName : string
Return values
string

        
On this page

Search results