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

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
Internal

only to be used within Extbase, not part of TYPO3 Core API.

Tags
throws
InvalidArgumentException
throws
InvalidTargetException
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
Internal

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
Internal

only to be used within Extbase, not part of TYPO3 Core API.

Tags
throws
InvalidDataTypeException
throws
InvalidPropertyMappingConfigurationException
throws
InvalidArgumentException
Return values
string

getTypeOfChildProperty()

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
Internal

only to be used within Extbase, not part of TYPO3 Core API.

Tags
throws
InvalidTargetException
Return values
string

the type of $propertyName in $targetType

injectContainer()

public injectContainer(ContainerInterface $container) : void
Parameters
$container : ContainerInterface

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
throws
InvalidTargetException

if a required constructor argument is missing

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
throws
TargetNotFoundException
throws
InvalidSourceException
Return values
object

handleArrayData()

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
Tags
throws
InvalidPropertyMappingConfigurationException
Return values
object

        
On this page

Search results