‪TYPO3CMS  10.4
TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter Class Reference
Inheritance diagram for TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter:
TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter TYPO3\CMS\Extbase\Property\TypeConverter\AbstractTypeConverter TYPO3\CMS\Extbase\Property\TypeConverterInterface TYPO3\CMS\Core\SingletonInterface

Public Member Functions

 injectPersistenceManager (PersistenceManagerInterface $persistenceManager)
 
bool canConvertFrom ($source, string $targetType)
 
array getSourceChildPropertiesToBeConverted ($source)
 
string getTypeOfChildProperty ($targetType, string $propertyName, PropertyMappingConfigurationInterface $configuration)
 
object null convertFrom ($source, string $targetType, array $convertedChildProperties=[], PropertyMappingConfigurationInterface $configuration=null)
 
- ‪Public Member Functions inherited from ‪TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
 injectObjectContainer (Container $objectContainer)
 
 injectReflectionService (ReflectionService $reflectionService)
 
string getTypeOfChildProperty (string $targetType, string $propertyName, PropertyMappingConfigurationInterface $configuration)
 
string getTargetTypeForSource ($source, string $originalTargetType, PropertyMappingConfigurationInterface $configuration=null)
 
- ‪Public Member Functions inherited from ‪TYPO3\CMS\Extbase\Property\TypeConverter\AbstractTypeConverter
 injectObjectManager (ObjectManagerInterface $objectManager)
 
string[] getSupportedSourceTypes ()
 
string getSupportedTargetType ()
 
int getPriority ()
 

Public Attributes

const CONFIGURATION_MODIFICATION_ALLOWED = 1
 
const CONFIGURATION_CREATION_ALLOWED = 2
 
- ‪Public Attributes inherited from ‪TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
const CONFIGURATION_TARGET_TYPE = 3
 
const CONFIGURATION_OVERRIDE_TARGET_TYPE_ALLOWED = 4
 

Protected Member Functions

object handleArrayData (array $source, string $targetType, array &$convertedChildProperties, PropertyMappingConfigurationInterface $configuration=null)
 
object fetchObjectFromPersistence ($identity, string $targetType)
 
- ‪Protected Member Functions inherited from ‪TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
object buildObject (array &$possibleConstructorArgumentValues, string $objectType)
 

Protected Attributes

array $sourceTypes = array( 'integer', 'string', 'array' )
 
string $targetType = 'object'
 
int $priority = 20
 
TYPO3 CMS Extbase Persistence PersistenceManagerInterface $persistenceManager
 
- ‪Protected Attributes inherited from ‪TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
array $sourceTypes = array( 'array' )
 
string $targetType = 'object'
 
int $priority = 10
 
TYPO3 CMS Extbase Object Container Container $objectContainer
 
TYPO3 CMS Extbase Reflection ReflectionService $reflectionService
 
- ‪Protected Attributes inherited from ‪TYPO3\CMS\Extbase\Property\TypeConverter\AbstractTypeConverter
string[] $sourceTypes = array( )
 
string $targetType = ''
 
int $priority
 
TYPO3 CMS Extbase Object ObjectManagerInterface $objectManager
 

Detailed Description

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.

Definition at line 42 of file PersistentObjectConverter.php.

Member Function Documentation

◆ canConvertFrom()

bool TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::canConvertFrom (   $source,
string  $targetType 
)

We can only convert if the $targetType is either tagged with entity or value object.

Parameters
mixed$source
string$targetType
Returns
‪bool

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

Reimplemented from TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter.

Definition at line 87 of file PersistentObjectConverter.php.

References TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\$targetType.

◆ convertFrom()

object null TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::convertFrom (   $source,
string  $targetType,
array  $convertedChildProperties = [],
PropertyMappingConfigurationInterface  $configuration = null 
)

Convert an object from $source to an entity or a value object.

Parameters
mixed$source
string$targetType
array$convertedChildProperties
\TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface$configuration
Exceptions

Reimplemented from TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter.

Definition at line 148 of file PersistentObjectConverter.php.

References TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\$targetType, TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\fetchObjectFromPersistence(), TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\handleArrayData(), and TYPO3\CMS\Extbase\Reflection\ObjectAccess\setProperty().

◆ fetchObjectFromPersistence()

object TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::fetchObjectFromPersistence (   $identity,
string  $targetType 
)
protected

◆ getSourceChildPropertiesToBeConverted()

array TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::getSourceChildPropertiesToBeConverted (   $source)

All properties in the source array except __identity are sub-properties.

Parameters
mixed$source
Returns
‪array

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

Reimplemented from TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter.

Definition at line 99 of file PersistentObjectConverter.php.

◆ getTypeOfChildProperty()

string TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::getTypeOfChildProperty (   $targetType,
string  $propertyName,
PropertyMappingConfigurationInterface  $configuration 
)

The type of a property is determined by the reflection service.

Parameters
string$targetType
string$propertyName
\TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface$configuration
Returns
‪string
Exceptions

Definition at line 120 of file PersistentObjectConverter.php.

References TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\$targetType, TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface\getConfigurationFor(), and TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface\getConfigurationValue().

◆ handleArrayData()

object TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::handleArrayData ( array  $source,
string  $targetType,
array &  $convertedChildProperties,
PropertyMappingConfigurationInterface  $configuration = null 
)
protected

Handle the case if $source is an array.

Parameters
array$source
string$targetType
array$convertedChildProperties
\TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface$configuration
Returns
‪object
Exceptions

Definition at line 195 of file PersistentObjectConverter.php.

References TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\$targetType, TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter\buildObject(), and TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\fetchObjectFromPersistence().

Referenced by TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\convertFrom().

◆ injectPersistenceManager()

TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::injectPersistenceManager ( PersistenceManagerInterface  $persistenceManager)
Parameters
\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface$persistenceManager

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

Definition at line 74 of file PersistentObjectConverter.php.

References TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter\$persistenceManager.

Member Data Documentation

◆ $persistenceManager

TYPO3 CMS Extbase Persistence PersistenceManagerInterface TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::$persistenceManager
protected

◆ $priority

int TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::$priority = 20
protected

Definition at line 64 of file PersistentObjectConverter.php.

◆ $sourceTypes

array TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::$sourceTypes = array( 'integer', 'string', 'array' )
protected

Definition at line 56 of file PersistentObjectConverter.php.

◆ $targetType

◆ CONFIGURATION_CREATION_ALLOWED

◆ CONFIGURATION_MODIFICATION_ALLOWED