TYPO3 CMS  TYPO3_6-2
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 Tx_Extbase_Property_TypeConverter_PersistentObjectConverter

Public Member Functions

 canConvertFrom ($source, $targetType)
 
 getSourceChildPropertiesToBeConverted ($source)
 
 getTypeOfChildProperty ($targetType, $propertyName, \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration)
 
 convertFrom ($source, $targetType, array $convertedChildProperties=array(), \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration=NULL)
 
- Public Member Functions inherited from TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
 canConvertFrom ($source, $targetType)
 
 getSourceChildPropertiesToBeConverted ($source)
 
 getTypeOfChildProperty ($targetType, $propertyName, \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration)
 
 convertFrom ($source, $targetType, array $convertedChildProperties=array(), \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
 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)
 
 checkInheritanceChainWithoutIsA ($targetType, $originalTargetType)
 

Protected Attributes

 $sourceTypes = array('integer', 'string', 'array')
 
 $targetType = 'object'
 
 $priority = 1
 
 $persistenceManager
 
- Protected Attributes inherited from TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter
 $sourceTypes = array('array')
 
 $targetType = 'object'
 
 $priority = 0
 
 $objectManager
 
 $objectContainer
 
 $reflectionService
 
- Protected Attributes inherited from TYPO3\CMS\Extbase\Property\TypeConverter\AbstractTypeConverter
 $sourceTypes = array()
 
 $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
boolean

Implements TYPO3\CMS\Extbase\Property\TypeConverterInterface.

Definition at line 77 of file PersistentObjectConverter.php.

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

◆ convertFrom()

TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::convertFrom (   $source,
  $targetType,
array  $convertedChildProperties = array(),
\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 132 of file PersistentObjectConverter.php.

References $result, 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 87 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 106 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 177 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().

Member Data Documentation

◆ $persistenceManager

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

Definition at line 68 of file PersistentObjectConverter.php.

◆ $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 = array('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.