PersistentObjectConverter extends ObjectConverter
This converter transforms arrays or strings to persistent objects. It does the following:
-
If the input is string, it is assumed to be a UID. Then, the object is fetched from persistence.
-
If the input is array, we check if it has an identity property.
-
If the input has an identity property and NO additional properties, we fetch the object from persistence.
-
If the input has an identity property AND additional properties, we fetch the object from persistence, and set the sub-properties. We only do this if the configuration option "CONFIGURATION_MODIFICATION_ALLOWED" is TRUE.
-
If the input has NO identity property, but additional properties, we create a new object and return it. However, we only do this if the configuration option "CONFIGURATION_CREATION_ALLOWED" is TRUE.
Table of Contents
Constants
- CONFIGURATION_CREATION_ALLOWED = 2
- CONFIGURATION_MODIFICATION_ALLOWED = 1
- CONFIGURATION_OVERRIDE_TARGET_TYPE_ALLOWED = 4
- CONFIGURATION_TARGET_TYPE = 3
Properties
- $container : ContainerInterface
- $persistenceManager : PersistenceManagerInterface
- $reflectionService : ReflectionService
Methods
- convertFrom() : object|null
- Convert an object from $source to an entity or a value object.
- getSourceChildPropertiesToBeConverted() : array<string|int, mixed>
- All properties in the source array except __identity are sub-properties.
- getTargetTypeForSource() : string
- Determines the target type based on the source's (optional) __type key and by evaluating possible XCLASS overrides of the target type.
- getTypeOfChildProperty() : string
- The type of a property is determined by the reflection service.
- injectContainer() : void
- injectPersistenceManager() : void
- injectReflectionService() : void
- buildObject() : object
- Builds a new instance of $objectType with the given $possibleConstructorArgumentValues. If constructor argument values are missing from the given array the method looks for a default value in the constructor signature. Furthermore, the constructor arguments are removed from $possibleConstructorArgumentValues: They are considered "handled" by __construct and will not be mapped calling setters later.
- fetchObjectFromPersistence() : object
- Fetch an object from persistence layer.
- handleArrayData() : object
- Handle the case if $source is an array.
Constants
CONFIGURATION_CREATION_ALLOWED
public
int
CONFIGURATION_CREATION_ALLOWED
= 2
CONFIGURATION_MODIFICATION_ALLOWED
public
int
CONFIGURATION_MODIFICATION_ALLOWED
= 1
CONFIGURATION_OVERRIDE_TARGET_TYPE_ALLOWED
public
int
CONFIGURATION_OVERRIDE_TARGET_TYPE_ALLOWED
= 4
CONFIGURATION_TARGET_TYPE
public
int
CONFIGURATION_TARGET_TYPE
= 3
Properties
$container
protected
ContainerInterface
$container
$persistenceManager
protected
PersistenceManagerInterface
$persistenceManager
$reflectionService
protected
ReflectionService
$reflectionService
Methods
convertFrom()
Convert an object from $source to an entity or a value object.
public
convertFrom(mixed $source, string $targetType[, array<string|int, mixed> $convertedChildProperties = [] ][, PropertyMappingConfigurationInterface|null $configuration = null ]) : object|null
Parameters
- $source : mixed
- $targetType : string
- $convertedChildProperties : array<string|int, mixed> = []
- $configuration : PropertyMappingConfigurationInterface|null = null
only to be used within Extbase, not part of TYPO3 Core API.
Tags
Return values
object|null —the target type
getSourceChildPropertiesToBeConverted()
All properties in the source array except __identity are sub-properties.
public
getSourceChildPropertiesToBeConverted(mixed $source) : array<string|int, mixed>
Parameters
- $source : mixed
only to be used within Extbase, not part of TYPO3 Core API.
Return values
array<string|int, mixed>getTargetTypeForSource()
Determines the target type based on the source's (optional) __type key and by evaluating possible XCLASS overrides of the target type.
public
getTargetTypeForSource(mixed $source, string $originalTargetType[, PropertyMappingConfigurationInterface|null $configuration = null ]) : string
Parameters
- $source : mixed
- $originalTargetType : string
-
the type we originally want to convert to
- $configuration : PropertyMappingConfigurationInterface|null = null
only to be used within Extbase, not part of TYPO3 Core API.
Tags
Return values
stringgetTypeOfChildProperty()
The type of a property is determined by the reflection service.
public
getTypeOfChildProperty(string $targetType, string $propertyName, PropertyMappingConfigurationInterface $configuration) : string
Parameters
- $targetType : string
- $propertyName : string
- $configuration : PropertyMappingConfigurationInterface
only to be used within Extbase, not part of TYPO3 Core API.
Tags
Return values
string —the type of $propertyName in $targetType
injectContainer()
public
injectContainer(ContainerInterface $container) : void
Parameters
- $container : ContainerInterface
injectPersistenceManager()
public
injectPersistenceManager(PersistenceManagerInterface $persistenceManager) : void
Parameters
- $persistenceManager : PersistenceManagerInterface
only to be used within Extbase, not part of TYPO3 Core API.
injectReflectionService()
public
injectReflectionService(ReflectionService $reflectionService) : void
Parameters
- $reflectionService : ReflectionService
buildObject()
Builds a new instance of $objectType with the given $possibleConstructorArgumentValues. If constructor argument values are missing from the given array the method looks for a default value in the constructor signature. Furthermore, the constructor arguments are removed from $possibleConstructorArgumentValues: They are considered "handled" by __construct and will not be mapped calling setters later.
protected
buildObject(array<string|int, mixed> &$possibleConstructorArgumentValues, string $objectType) : object
Parameters
- $possibleConstructorArgumentValues : array<string|int, mixed>
- $objectType : string
Tags
Return values
object —The created instance
fetchObjectFromPersistence()
Fetch an object from persistence layer.
protected
fetchObjectFromPersistence(mixed $identity, string $targetType) : object
Parameters
- $identity : mixed
- $targetType : string
Tags
Return values
objecthandleArrayData()
Handle the case if $source is an array.
protected
handleArrayData(array<string|int, mixed> $source, string $targetType, array<string|int, mixed> &$convertedChildProperties[, PropertyMappingConfigurationInterface|null $configuration = null ]) : object
Parameters
- $source : array<string|int, mixed>
- $targetType : string
- $convertedChildProperties : array<string|int, mixed>
- $configuration : PropertyMappingConfigurationInterface|null = null