EnumConverter extends AbstractTypeConverter

Converter which transforms strings/integers/floats to Enum Instance.

Table of Contents

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
Only convert if target is enum
convertFrom()  : T|null
Convert an enum from $source to an enum.
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
getEnumElement()  : T|null

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

$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 = []

$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 = ''

Methods

canConvertFrom()

Only convert if target is enum

public canConvertFrom(mixed $source, T> $targetType) : bool
Parameters
$source : mixed

the source data

$targetType : T>
Internal

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

Tags
template

T of UnitEnum

Return values
bool

convertFrom()

Convert an enum from $source to an enum.

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

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

Tags
template

T of UnitEnum

throws
InvalidTargetException
Return values
T|null

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

getEnumElement()

protected getEnumElement(float|int|string $source, T> $targetType) : T|null
Parameters
$source : float|int|string
$targetType : T>
Tags
template

T of UnitEnum

throws
InvalidTargetException
Return values
T|null

        
On this page

Search results