TYPO3 CMS  TYPO3_7-6
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\Core\SingletonInterface TYPO3\CMS\Extbase\Property\TypeConverterInterface TYPO3\CMS\Core\SingletonInterface

Public Member Functions

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

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

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

Protected Attributes

 $sourceTypes = ['integer', 'string', 'array']
 
 $targetType = 'object'
 
 $priority = 1
 
 $persistenceManager
 
- Protected Attributes inherited from TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
 $sourceTypes = ['array']
 
 $targetType = 'object'
 
 $priority = 0
 
 $objectContainer
 
 $reflectionService
 
- Protected Attributes inherited from TYPO3\CMS\Extbase\Property\TypeConverter\AbstractTypeConverter
 $sourceTypes = []
 
 $targetType = ''
 
 $priority
 
 $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 37 of file PersistentObjectConverter.php.

Member Function Documentation

◆ canConvertFrom()

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

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

Parameters
mixed$source
string$targetType
Returns
bool

Implements TYPO3\CMS\Extbase\Property\TypeConverterInterface.

Definition at line 84 of file PersistentObjectConverter.php.

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

◆ convertFrom()

TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::convertFrom (   $source,
  $targetType,
array  $convertedChildProperties = [],
\TYPO3\CMS\Extbase\Property\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

Implements TYPO3\CMS\Extbase\Property\TypeConverterInterface.

Definition at line 142 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()

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

◆ getSourceChildPropertiesToBeConverted()

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

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

Parameters
mixed$source
Returns
array

Implements TYPO3\CMS\Extbase\Property\TypeConverterInterface.

Definition at line 95 of file PersistentObjectConverter.php.

◆ getTypeOfChildProperty()

TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::getTypeOfChildProperty (   $targetType,
  $propertyName,
\TYPO3\CMS\Extbase\Property\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

Implements TYPO3\CMS\Extbase\Property\TypeConverterInterface.

Definition at line 115 of file PersistentObjectConverter.php.

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

◆ handleArrayData()

TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::handleArrayData ( array  $source,
  $targetType,
array &  $convertedChildProperties,
\TYPO3\CMS\Extbase\Property\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 188 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 ( \TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface  $persistenceManager)
Parameters
\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface$persistenceManager

Definition at line 72 of file PersistentObjectConverter.php.

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

Member Data Documentation

◆ $persistenceManager

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

◆ $priority

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

Definition at line 62 of file PersistentObjectConverter.php.

◆ $sourceTypes

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

Definition at line 52 of file PersistentObjectConverter.php.

◆ $targetType

◆ CONFIGURATION_CREATION_ALLOWED

◆ CONFIGURATION_MODIFICATION_ALLOWED

const TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::CONFIGURATION_MODIFICATION_ALLOWED = 1

Definition at line 42 of file PersistentObjectConverter.php.