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
- $priority : int
- The priority for this converter.
- $reflectionService : ReflectionService
- $sourceTypes : array<string|int, mixed>
- The source types this converter can convert.
- $targetType : string
- The target type this converter can convert to.
Methods
- canConvertFrom() : bool
- We can only convert if the $targetType is either tagged with entity or value object.
- convertFrom() : object|null
- Convert an object from $source to an entity or a value object.
- getPriority() : int
- Return the priority of this TypeConverter. TypeConverters with a high priority are chosen before low priority.
- getSourceChildPropertiesToBeConverted() : array<string|int, mixed>
- All properties in the source array except __identity are sub-properties.
- getSupportedSourceTypes() : array<string|int, string>
- Returns the list of source types the TypeConverter can handle.
- getSupportedTargetType() : string
- Return the target type this TypeConverter converts to.
- 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() : mixed
- 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
$priority
The priority for this converter.
will be removed in TYPO3 v13.0, as this is defined in Services.yaml.
protected
int
$priority
= 20
$reflectionService
protected
ReflectionService
$reflectionService
$sourceTypes
The source types this converter can convert.
will be removed in TYPO3 v13.0, as this is defined in Services.yaml.
protected
array<string|int, mixed>
$sourceTypes
= ['integer', 'string', 'array']
$targetType
The target type this converter can convert to.
will be removed in TYPO3 v13.0, as this is defined in Services.yaml.
protected
string
$targetType
= 'object'
Methods
canConvertFrom()
We can only convert if the $targetType is either tagged with entity or value object.
public
canConvertFrom(mixed $source, string $targetType) : bool
Parameters
- $source : mixed
- $targetType : string
only to be used within Extbase, not part of TYPO3 Core API.
Return values
boolconvertFrom()
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
getPriority()
Return the priority of this TypeConverter. TypeConverters with a high priority are chosen before low priority.
public
getPriority() : int
will be removed in TYPO3 v13.0, as this is defined in Services.yaml.
Return values
intgetSourceChildPropertiesToBeConverted()
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>getSupportedSourceTypes()
Returns the list of source types the TypeConverter can handle.
public
getSupportedSourceTypes() : array<string|int, string>
will be removed in TYPO3 v13.0, as this is defined in Services.yaml.
Must be PHP simple types, classes or object is not allowed.
Return values
array<string|int, string>getSupportedTargetType()
Return the target type this TypeConverter converts to.
public
getSupportedTargetType() : string
will be removed in TYPO3 v13.0, as this is defined in Services.yaml.
Can be a simple type or a class name.
Return values
stringgetTargetTypeForSource()
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) : mixed
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