mediatekformation

AbstractClassMetadataFactory
in package
implements ClassMetadataFactory

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

This class was abstracted from the ORM ClassMetadataFactory.

Tags
template

CMTemplate of ClassMetadata

template-implements

ClassMetadataFactory<CMTemplate>

Interfaces, Classes, Traits and Enums

ClassMetadataFactory
Contract for a Doctrine persistence layer ClassMetadata class to implement.

Table of Contents

$cacheSalt  : string
Salt used by specific Object Manager implementation.
$initialized  : bool
$cache  : CacheItemPoolInterface|null
$cacheDriver  : Cache|null
$loadedMetadata  : array<string|int, ClassMetadata>
$proxyClassNameResolver  : ProxyClassNameResolver|null
$reflectionService  : ReflectionService|null
getAllMetadata()  : array<string|int, ClassMetadata>
Forces the factory to load the metadata of all classes known to the underlying mapping driver.
getCacheDriver()  : Cache|null
Gets the cache driver used by the factory to cache ClassMetadata instances.
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
setCacheDriver()  : void
Sets the cache driver used by the factory to cache ClassMetadata instances.
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()  : string
Gets the fully qualified class-name from the namespace alias.
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<string|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
wakeupReflection()  : void
Wakes up reflection after ClassMetadata gets unserialized from cache.
createDefaultProxyClassNameResolver()  : void
getRealClass()  : string
Gets the real class name of a class name that could be a proxy.

Properties

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.

getCacheDriver()

Gets the cache driver used by the factory to cache ClassMetadata instances.

public getCacheDriver() : Cache|null
Tags
deprecated

getCacheDriver was deprecated in doctrine/persistence 2.2 and will be removed in 3.0.

Return values
Cache|null —

hasMetadataFor()

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

public hasMetadataFor(mixed $className) : bool
Parameters
$className : mixed
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(mixed $class) : bool
Parameters
$class : mixed
Tags
psalm-param

class-string|string $class

Return values
bool —

setCacheDriver()

Sets the cache driver used by the factory to cache ClassMetadata instances.

public setCacheDriver([Cache|null $cacheDriver = null ]) : void
Parameters
$cacheDriver : Cache|null = null
Tags
deprecated

setCacheDriver was deprecated in doctrine/persistence 2.2 and will be removed in 3.0. Use setCache instead

Return values
void —

setMetadataFor()

Sets the metadata descriptor for a specific class.

public setMetadataFor(mixed $className, mixed $class) : void

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

Parameters
$className : mixed
$class : mixed
Return values
void —

doLoadMetadata()

Actually loads the metadata from the underlying metadata.

protected abstract doLoadMetadata(ClassMetadata $class, ClassMetadata|null $parent, bool $rootEntityFound, array<string|int, string> $nonSuperclassParents) : void
Parameters
$class : ClassMetadata
$parent : ClassMetadata|null
$rootEntityFound : bool
$nonSuperclassParents : array<string|int, string>

All parent class names that are not marked as mapped superclasses.

Tags
psalm-param

CMTemplate $class

psalm-param

CMTemplate|null $parent

Return values
void —

getCacheKey()

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

getFqcnFromAlias()

Gets the fully qualified class-name from the namespace alias.

protected abstract getFqcnFromAlias(string $namespaceAlias, string $simpleClassName) : string
Parameters
$namespaceAlias : string
$simpleClassName : string
Tags
psalm-return

class-string

Return values
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

class-string[]

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
Return values
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<string|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

Return values
array<string|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 —

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 —

Search results