ArrayConverter extends AbstractTypeConverter

Converter which transforms strings/arrays to arrays.

Table of Contents

Constants

CONFIGURATION_DELIMITER  = 'delimiter'
CONFIGURATION_LIMIT  = 'limit'
CONFIGURATION_REMOVE_EMPTY_VALUES  = 'removeEmptyValues'

Properties

$priority  : int
The priority for this converter.
$sourceTypes  : array<string|int, string>
The source types this converter can convert.
$targetType  : string
The target type this converter can convert to.

Methods

canConvertFrom()  : bool
We can only convert empty strings to array or array to array.
convertFrom()  : array<string|int, mixed>|string
Convert from $source to $targetType, a noop if the source is an array.
getPriority()  : int
Return the priority of this TypeConverter. TypeConverters with a high priority are chosen before low priority.
getSourceChildPropertiesToBeConverted()  : array<string|int, mixed>
Return a list of sub-properties inside the source object.
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
Returns the type for a given source, depending on e.g. the __type setting or other properties.
getTypeOfChildProperty()  : string
Return the type of a given sub-property inside the $targetType

Constants

CONFIGURATION_DELIMITER

public mixed CONFIGURATION_DELIMITER = 'delimiter'

CONFIGURATION_LIMIT

public mixed CONFIGURATION_LIMIT = 'limit'

CONFIGURATION_REMOVE_EMPTY_VALUES

public mixed CONFIGURATION_REMOVE_EMPTY_VALUES = 'removeEmptyValues'

Properties

$priority

The priority for this converter.

Deprecated

will be removed in TYPO3 v13.0, as this is defined in Services.yaml.

protected int $priority = 10

$sourceTypes

The source types this converter can convert.

Deprecated

will be removed in TYPO3 v13.0, as this is defined in Services.yaml.

protected array<string|int, string> $sourceTypes = ['array', 'string']

$targetType

The target type this converter can convert to.

Deprecated

will be removed in TYPO3 v13.0, as this is defined in Services.yaml.

protected string $targetType = 'array'

Methods

canConvertFrom()

We can only convert empty strings to array or array to array.

public canConvertFrom(mixed $source, string $targetType) : bool
Deprecated

will be removed in TYPO3 v13.0

Parameters
$source : mixed
$targetType : string
Internal

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

Return values
bool

convertFrom()

Convert from $source to $targetType, a noop if the source is an array.

public convertFrom(string|array<string|int, mixed> $source, string $targetType[, array<string|int, mixed> $convertedChildProperties = [] ][, PropertyMappingConfigurationInterface $configuration = null ]) : array<string|int, mixed>|string

If it is an empty string it will be converted to an empty array. If the type converter has a configuration, it can convert non-empty strings, too

Parameters
$source : string|array<string|int, mixed>
$targetType : string
$convertedChildProperties : array<string|int, mixed> = []
$configuration : PropertyMappingConfigurationInterface = null
Return values
array<string|int, mixed>|string

getPriority()

Return the priority of this TypeConverter. TypeConverters with a high priority are chosen before low priority.

public getPriority() : int
Deprecated

will be removed in TYPO3 v13.0, as this is defined in Services.yaml.

Return values
int

getSourceChildPropertiesToBeConverted()

Return a list of sub-properties inside the source object.

public getSourceChildPropertiesToBeConverted(mixed $source) : array<string|int, mixed>
Parameters
$source : mixed
Tags
todo

this method is only used for converter sources that have children (i.e. objects). Introduce another ChildPropertyAwareTypeConverterInterface and drop this method from the main interface

Returns an empty list of sub property names

Return values
array<string|int, mixed>

getSupportedSourceTypes()

Returns the list of source types the TypeConverter can handle.

public getSupportedSourceTypes() : array<string|int, string>
Deprecated

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
Deprecated

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
string

getTargetTypeForSource()

Returns the type for a given source, depending on e.g. the __type setting or other properties.

public getTargetTypeForSource(mixed $source, string $originalTargetType[, PropertyMappingConfigurationInterface|null $configuration = null ]) : string
Parameters
$source : mixed

the source data

$originalTargetType : string

the type we originally want to convert to

$configuration : PropertyMappingConfigurationInterface|null = null
Tags
todo

The concept of this method is flawed because it enables the override of the target type depending on the structure of the source. So, technically we no longer convert type A to B but source of type A with structure X to type B defined by X. This makes a type converter non-deterministic.

Returns the $originalTargetType unchanged in this implementation.

Return values
string

getTypeOfChildProperty()

Return the type of a given sub-property inside the $targetType

public getTypeOfChildProperty(string $targetType, string $propertyName, PropertyMappingConfigurationInterface $configuration) : string
Parameters
$targetType : string
$propertyName : string
$configuration : PropertyMappingConfigurationInterface
Tags
todo

this method is only used for converter sources that have children (i.e. objects). Introduce another ChildPropertyAwareTypeConverterInterface and drop this method from the main interface

This method is never called, as getSourceChildPropertiesToBeConverted() returns an empty array.

Return values
string

the type of $propertyName in $targetType


        
On this page

Search results