‪TYPO3CMS  9.5
TYPO3\CMS\Extbase\Persistence\Generic\Backend Class Reference
Inheritance diagram for TYPO3\CMS\Extbase\Persistence\Generic\Backend:
TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface TYPO3\CMS\Core\SingletonInterface

Public Member Functions

 injectSession (\TYPO3\CMS\Extbase\Persistence\Generic\Session $session)
 
 injectReflectionService (\TYPO3\CMS\Extbase\Reflection\ReflectionService $reflectionService)
 
 injectQomFactory (\TYPO3\CMS\Extbase\Persistence\Generic\Qom\QueryObjectModelFactory $qomFactory)
 
 injectStorageBackend (\TYPO3\CMS\Extbase\Persistence\Generic\Storage\BackendInterface $storageBackend)
 
 injectDataMapFactory (\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapFactory $dataMapFactory)
 
 injectSignalSlotDispatcher (\TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher)
 
 __construct (\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager)
 
 setPersistenceManager (\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface $persistenceManager)
 
TYPO3 CMS Extbase Persistence Generic Session getSession ()
 
TYPO3 CMS Extbase Persistence Generic Qom QueryObjectModelFactory getQomFactory ()
 
TYPO3 CMS Extbase Reflection ReflectionService getReflectionService ()
 
int getObjectCountByQuery (\TYPO3\CMS\Extbase\Persistence\QueryInterface $query)
 
array getObjectDataByQuery (\TYPO3\CMS\Extbase\Persistence\QueryInterface $query)
 
string null getIdentifierByObject ($object)
 
object null getObjectByIdentifier ($identifier, $className)
 
bool isNewObject ($object)
 
 setAggregateRootObjects (\TYPO3\CMS\Extbase\Persistence\ObjectStorage $objects)
 
 setChangedEntities (\TYPO3\CMS\Extbase\Persistence\ObjectStorage $entities)
 
 setDeletedEntities (\TYPO3\CMS\Extbase\Persistence\ObjectStorage $entities)
 
 commit ()
 

Protected Member Functions

TYPO3 CMS Extbase Persistence QueryInterface emitBeforeGettingObjectDataSignal (\TYPO3\CMS\Extbase\Persistence\QueryInterface $query)
 
array emitAfterGettingObjectDataSignal (\TYPO3\CMS\Extbase\Persistence\QueryInterface $query, array $result)
 
 persistObjects ()
 
 persistObject (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object)
 
bool propertyValueIsLazyLoaded ($propertyValue)
 
 persistObjectStorage (\TYPO3\CMS\Extbase\Persistence\ObjectStorage $objectStorage, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $propertyName, array &$row)
 
array getRemovedChildObjects (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, $propertyName)
 
 attachObjectToParentObject (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $parentPropertyName, $sortingPosition=0)
 
 updateRelationOfObjectToParentObject (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\AbstractEntity $parentObject, $parentPropertyName, $sortingPosition=0)
 
 attachObjectToParentObjectRelationHasMany (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\AbstractEntity $parentObject, $parentPropertyName, $sortingPosition=0)
 
 detachObjectFromParentObject (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $parentPropertyName)
 
 insertObject (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject=null, $parentPropertyName='')
 
 emitAfterInsertObjectSignal (DomainObjectInterface $object)
 
 emitEndInsertObjectSignal (DomainObjectInterface $object)
 
mixed getUidOfAlreadyPersistedValueObject (\TYPO3\CMS\Extbase\DomainObject\AbstractValueObject $object)
 
int insertRelationInRelationtable (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $propertyName, $sortingPosition=null)
 
bool updateRelationInRelationTable (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $propertyName, $sortingPosition=0)
 
bool deleteAllRelationsFromRelationtable (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $parentPropertyName)
 
bool deleteRelationFromRelationtable (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $relatedObject, \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $parentPropertyName)
 
mixed fetchMaxSortingFromParentTable (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $parentObject, $parentPropertyName)
 
bool updateObject (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, array $row)
 
 emitAfterUpdateObjectSignal (DomainObjectInterface $object)
 
 emitAfterPersistObjectSignal (DomainObjectInterface $object)
 
 addCommonFieldsToRow (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, array &$row)
 
 addCommonDateFieldsToRow (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, array &$row)
 
 processDeletedObjects ()
 
 removeEntity (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object, $markAsDeleted=true)
 
 emitAfterRemoveObjectSignal (DomainObjectInterface $object)
 
 removeRelatedObjects (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object)
 
int determineStoragePageIdForNewRecord (\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object=null)
 
int string null getPlainValue ($input, ColumnMap $columnMap=null)
 

Protected Attributes

TYPO3 CMS Extbase Persistence Generic Session $session
 
TYPO3 CMS Extbase Persistence PersistenceManagerInterface $persistenceManager
 
TYPO3 CMS Extbase Persistence ObjectStorage $aggregateRootObjects
 
TYPO3 CMS Extbase Persistence ObjectStorage $deletedEntities
 
TYPO3 CMS Extbase Persistence ObjectStorage $changedEntities
 
TYPO3 CMS Extbase Persistence ObjectStorage $visitedDuringPersistence
 
TYPO3 CMS Extbase Reflection ReflectionService $reflectionService
 
TYPO3 CMS Extbase Persistence Generic Qom QueryObjectModelFactory $qomFactory
 
TYPO3 CMS Extbase Persistence Generic Storage BackendInterface $storageBackend
 
TYPO3 CMS Extbase Persistence Generic Mapper DataMapFactory $dataMapFactory
 
TYPO3 CMS Core Database ReferenceIndex $referenceIndex
 
TYPO3 CMS Extbase Configuration ConfigurationManagerInterface $configurationManager
 
TYPO3 CMS Extbase SignalSlot Dispatcher $signalSlotDispatcher
 

Detailed Description

A persistence backend. This backend maps objects to the relational model of the storage backend. It persists all added, removed and changed objects.

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

Definition at line 29 of file Backend.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::__construct ( \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface  $configurationManager)

Constructs the backend

Parameters
\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface$configurationManager

Definition at line 138 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$configurationManager.

Member Function Documentation

◆ addCommonDateFieldsToRow()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::addCommonDateFieldsToRow ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
array &  $row 
)
protected

Adjustes the common date fields of the given row to the current time

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object
array&$row‪The row to be updated

Definition at line 978 of file Backend.php.

References $GLOBALS.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\addCommonFieldsToRow(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\removeEntity().

◆ addCommonFieldsToRow()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::addCommonFieldsToRow ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
array &  $row 
)
protected

◆ attachObjectToParentObject()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::attachObjectToParentObject ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $parentPropertyName,
  $sortingPosition = 0 
)
protected

Updates the fields defining the relation between the object and the parent object.

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject
string$parentPropertyName
int$sortingPosition

Definition at line 516 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\attachObjectToParentObjectRelationHasMany(), TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertRelationInRelationtable(), TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_AND_BELONGS_TO_MANY, and TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_MANY.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObjectStorage().

◆ attachObjectToParentObjectRelationHasMany()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::attachObjectToParentObjectRelationHasMany ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
\TYPO3\CMS\Extbase\DomainObject\AbstractEntity  $parentObject,
  $parentPropertyName,
  $sortingPosition = 0 
)
protected

Updates fields defining the relation between the object and the parent object in relation has-many.

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object
\TYPO3\CMS\Extbase\DomainObject\AbstractEntity$parentObject
string$parentPropertyName
int$sortingPosition
Exceptions

Definition at line 556 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_MANY, and TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateObject().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\attachObjectToParentObject(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateRelationOfObjectToParentObject().

◆ commit()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::commit ( )

◆ deleteAllRelationsFromRelationtable()

bool TYPO3\CMS\Extbase\Persistence\Generic\Backend::deleteAllRelationsFromRelationtable ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $parentPropertyName 
)
protected

Delete all mm-relations of a parent from a relation table

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject‪The parent object
string$parentPropertyName‪The name of the parent object's property where the related objects are stored in
Returns
‪bool TRUE if delete was successfully

Definition at line 808 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\removeRelatedObjects().

◆ deleteRelationFromRelationtable()

bool TYPO3\CMS\Extbase\Persistence\Generic\Backend::deleteRelationFromRelationtable ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $relatedObject,
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $parentPropertyName 
)
protected

Delete an mm-relation from a relation table

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$relatedObject‪The related object
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject‪The parent object
string$parentPropertyName‪The name of the parent object's property where the related objects are stored in
Returns
‪bool

Definition at line 832 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\detachObjectFromParentObject().

◆ detachObjectFromParentObject()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::detachObjectFromParentObject ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $parentPropertyName 
)
protected

Updates the fields defining the relation between the object and the parent object.

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject
string$parentPropertyName

Definition at line 596 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\deleteRelationFromRelationtable(), TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_AND_BELONGS_TO_MANY, TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_MANY, and TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateObject().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObjectStorage().

◆ determineStoragePageIdForNewRecord()

int TYPO3\CMS\Extbase\Persistence\Generic\Backend::determineStoragePageIdForNewRecord ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object = null)
protected

Determine the storage page ID for a given NEW record

This does the following:

  • ‪If the domain object has an accessible property 'pid' (i.e. through a getPid() method), that is used to store the record.
  • ‪If there is a TypoScript configuration "classes.CLASSNAME.newRecordStoragePid", that is used to store new records.
  • ‪If there is no such TypoScript configuration, it uses the first value of The "storagePid" taken for reading records.
Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object
Returns
‪int the storage Page ID where the object should be stored

Definition at line 1089 of file Backend.php.

References TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface\CONFIGURATION_TYPE_FRAMEWORK, and TYPO3\CMS\Extbase\Reflection\ObjectAccess\getProperty().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\addCommonFieldsToRow(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertRelationInRelationtable().

◆ emitAfterGettingObjectDataSignal()

array TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitAfterGettingObjectDataSignal ( \TYPO3\CMS\Extbase\Persistence\QueryInterface  $query,
array  $result 
)
protected

Emits a signal after object data is fetched

Parameters
\TYPO3\CMS\Extbase\Persistence\QueryInterface$query
array$result
Returns
‪array Modified result

Definition at line 230 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\getObjectDataByQuery().

◆ emitAfterInsertObjectSignal()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitAfterInsertObjectSignal ( DomainObjectInterface  $object)
protected

Emits a signal after an object was added to the storage

Parameters
DomainObjectInterface$object

Definition at line 706 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertObject().

◆ emitAfterPersistObjectSignal()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitAfterPersistObjectSignal ( DomainObjectInterface  $object)
protected

Emits a signal after an object was persisted

Parameters
DomainObjectInterface$object

Definition at line 949 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObject().

◆ emitAfterRemoveObjectSignal()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitAfterRemoveObjectSignal ( DomainObjectInterface  $object)
protected

Emits a signal after an object was removed from storage

Parameters
DomainObjectInterface$object

Definition at line 1040 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\removeEntity().

◆ emitAfterUpdateObjectSignal()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitAfterUpdateObjectSignal ( DomainObjectInterface  $object)
protected

Emits a signal after an object was updated in storage

Parameters
DomainObjectInterface$object

Definition at line 939 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateObject().

◆ emitBeforeGettingObjectDataSignal()

TYPO3 CMS Extbase Persistence QueryInterface TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitBeforeGettingObjectDataSignal ( \TYPO3\CMS\Extbase\Persistence\QueryInterface  $query)
protected

Emits a signal before object data is fetched

Parameters
\TYPO3\CMS\Extbase\Persistence\QueryInterface$query
Returns
‪\TYPO3\CMS\Extbase\Persistence\QueryInterface Modified query

Definition at line 217 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\getObjectDataByQuery().

◆ emitEndInsertObjectSignal()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::emitEndInsertObjectSignal ( DomainObjectInterface  $object)
protected

Emits a signal after an object was registered in persistence session This signal replaces the afterInsertObject signal which is now deprecated

Parameters
DomainObjectInterface$object

Definition at line 717 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertObject().

◆ fetchMaxSortingFromParentTable()

mixed TYPO3\CMS\Extbase\Persistence\Generic\Backend::fetchMaxSortingFromParentTable ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $parentPropertyName 
)
protected

Fetches maximal value currently used for sorting field in parent table

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject‪The parent object
string$parentPropertyName‪The name of the parent object's property where the related objects are stored in
Exceptions

Definition at line 857 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_AND_BELONGS_TO_MANY, and TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_MANY.

◆ getIdentifierByObject()

string null TYPO3\CMS\Extbase\Persistence\Generic\Backend::getIdentifierByObject (   $object)

Returns the (internal) identifier for the object, if it is known to the backend. Otherwise NULL is returned.

Parameters
object$object
Returns
‪string|null The identifier for the object if it is known, or NULL

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 243 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\isNewObject().

◆ getObjectByIdentifier()

object null TYPO3\CMS\Extbase\Persistence\Generic\Backend::getObjectByIdentifier (   $identifier,
  $className 
)

Returns the object with the (internal) identifier, if it is known to the backend. Otherwise NULL is returned.

Parameters
string$identifier
string$className
Returns
‪object|null The object for the identifier if it is known, or NULL

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 262 of file Backend.php.

◆ getObjectCountByQuery()

int TYPO3\CMS\Extbase\Persistence\Generic\Backend::getObjectCountByQuery ( \TYPO3\CMS\Extbase\Persistence\QueryInterface  $query)

Returns the number of records matching the query.

Parameters
\TYPO3\CMS\Extbase\Persistence\QueryInterface$query
Returns
‪int

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 192 of file Backend.php.

◆ getObjectDataByQuery()

array TYPO3\CMS\Extbase\Persistence\Generic\Backend::getObjectDataByQuery ( \TYPO3\CMS\Extbase\Persistence\QueryInterface  $query)

Returns the object data matching the $query.

Parameters
\TYPO3\CMS\Extbase\Persistence\QueryInterface$query
Returns
‪array

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 203 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\emitAfterGettingObjectDataSignal(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\emitBeforeGettingObjectDataSignal().

◆ getPlainValue()

int string null TYPO3\CMS\Extbase\Persistence\Generic\Backend::getPlainValue (   $input,
ColumnMap  $columnMap = null 
)
protected

Returns a plain value

i.e. objects are flattened out if possible. Checks explicitly for null values as DataMapper's getPlainValue would convert this to 'NULL'

Parameters
mixed$input‪The value that will be converted
ColumnMap$columnMap‪Optional column map for retrieving the date storage format
Returns
‪int|string|null

Definition at line 1118 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertObject(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObject().

◆ getQomFactory()

TYPO3 CMS Extbase Persistence Generic Qom QueryObjectModelFactory TYPO3\CMS\Extbase\Persistence\Generic\Backend::getQomFactory ( )

Returns the current QOM factory

Returns
‪\TYPO3\CMS\Extbase\Persistence\Generic\Qom\QueryObjectModelFactory

Definition at line 171 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$qomFactory.

◆ getReflectionService()

TYPO3 CMS Extbase Reflection ReflectionService TYPO3\CMS\Extbase\Persistence\Generic\Backend::getReflectionService ( )

Returns the reflection service

Returns
‪\TYPO3\CMS\Extbase\Reflection\ReflectionService

Definition at line 181 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$reflectionService.

◆ getRemovedChildObjects()

array TYPO3\CMS\Extbase\Persistence\Generic\Backend::getRemovedChildObjects ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
  $propertyName 
)
protected

Returns the removed objects determined by a comparison of the clean property value with the actual property value.

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object‪The object
string$propertyName
Returns
‪array An array of removed objects

Definition at line 493 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObjectStorage().

◆ getSession()

TYPO3 CMS Extbase Persistence Generic Session TYPO3\CMS\Extbase\Persistence\Generic\Backend::getSession ( )

Returns the repository session

Returns
‪\TYPO3\CMS\Extbase\Persistence\Generic\Session

Definition at line 161 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$session.

◆ getUidOfAlreadyPersistedValueObject()

mixed TYPO3\CMS\Extbase\Persistence\Generic\Backend::getUidOfAlreadyPersistedValueObject ( \TYPO3\CMS\Extbase\DomainObject\AbstractValueObject  $object)
protected

Tests, if the given Value Object already exists in the storage backend and if so, it returns the uid.

Parameters
\TYPO3\CMS\Extbase\DomainObject\AbstractValueObject$object‪The object to be tested
Returns
‪mixed The matching uid if an object was found, else FALSE

Definition at line 728 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertObject().

◆ injectDataMapFactory()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::injectDataMapFactory ( \TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapFactory  $dataMapFactory)
Parameters
\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapFactory$dataMapFactory

Definition at line 120 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$dataMapFactory.

◆ injectQomFactory()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::injectQomFactory ( \TYPO3\CMS\Extbase\Persistence\Generic\Qom\QueryObjectModelFactory  $qomFactory)
Parameters
\TYPO3\CMS\Extbase\Persistence\Generic\Qom\QueryObjectModelFactory$qomFactory

Definition at line 104 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$qomFactory.

◆ injectReflectionService()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::injectReflectionService ( \TYPO3\CMS\Extbase\Reflection\ReflectionService  $reflectionService)
Parameters
\TYPO3\CMS\Extbase\Reflection\ReflectionService$reflectionService

Definition at line 96 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$reflectionService.

◆ injectSession()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::injectSession ( \TYPO3\CMS\Extbase\Persistence\Generic\Session  $session)
Parameters
\TYPO3\CMS\Extbase\Persistence\Generic\Session$session

Definition at line 88 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$session.

◆ injectSignalSlotDispatcher()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::injectSignalSlotDispatcher ( \TYPO3\CMS\Extbase\SignalSlot\Dispatcher  $signalSlotDispatcher)
Parameters
\TYPO3\CMS\Extbase\SignalSlot\Dispatcher$signalSlotDispatcher

Definition at line 128 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$signalSlotDispatcher.

◆ injectStorageBackend()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::injectStorageBackend ( \TYPO3\CMS\Extbase\Persistence\Generic\Storage\BackendInterface  $storageBackend)
Parameters
\TYPO3\CMS\Extbase\Persistence\Generic\Storage\BackendInterface$storageBackend

Definition at line 112 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$storageBackend.

◆ insertObject()

◆ insertRelationInRelationtable()

int TYPO3\CMS\Extbase\Persistence\Generic\Backend::insertRelationInRelationtable ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $propertyName,
  $sortingPosition = null 
)
protected

Inserts mm-relation into a relation table

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object‪The related object
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject‪The parent object
string$propertyName‪The name of the parent object's property where the related objects are stored in
int$sortingPosition‪Defaults to NULL
Returns
‪int The uid of the inserted row

Definition at line 742 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\determineStoragePageIdForNewRecord().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\attachObjectToParentObject().

◆ isNewObject()

bool TYPO3\CMS\Extbase\Persistence\Generic\Backend::isNewObject (   $object)

Checks if the given object has ever been persisted.

Parameters
object$object‪The object to check
Returns
‪bool TRUE if the object is new, FALSE if the object exists in the repository

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 280 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\getIdentifierByObject().

◆ persistObject()

◆ persistObjects()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::persistObjects ( )
protected

Traverse and persist all aggregate roots and their object graph.

Definition at line 327 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertObject(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObject().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\commit().

◆ persistObjectStorage()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::persistObjectStorage ( \TYPO3\CMS\Extbase\Persistence\ObjectStorage  $objectStorage,
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $propertyName,
array &  $row 
)
protected

Persists an object storage. Objects of a 1:n or m:n relation are queued and processed with the parent object. A 1:1 relation gets persisted immediately. Objects which were removed from the property were detached from the parent object. They will not be deleted by default. You have to annotate the property with '@TYPO3\CMS\Extbase\Annotation\ORM\Cascade("remove")' if you want them to be deleted as well.

Parameters
\TYPO3\CMS\Extbase\Persistence\ObjectStorage$objectStorage‪The object storage to be persisted.
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject‪The parent object. One of the properties holds the object storage.
string$propertyName‪The name of the property holding the object storage.
array&$row‪The row array of the parent object to be persisted. It's passed by reference and gets filled with either a comma separated list of uids (csv) or the number of contained objects.

Definition at line 429 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\attachObjectToParentObject(), TYPO3\CMS\Extbase\Persistence\Generic\Backend\detachObjectFromParentObject(), TYPO3\CMS\Extbase\Persistence\Generic\Backend\getRemovedChildObjects(), TYPO3\CMS\Extbase\Persistence\Generic\Backend\insertObject(), TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_MANY, TYPO3\CMS\Extbase\Persistence\Generic\Backend\removeEntity(), and TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateRelationOfObjectToParentObject().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObject().

◆ processDeletedObjects()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::processDeletedObjects ( )
protected

Iterate over deleted aggregate root objects and process them

Definition at line 992 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\removeEntity().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\commit().

◆ propertyValueIsLazyLoaded()

bool TYPO3\CMS\Extbase\Persistence\Generic\Backend::propertyValueIsLazyLoaded (   $propertyValue)
protected

Checks, if the property value is lazy loaded and was not initialized

Parameters
mixed$propertyValue‪The property value
Returns
‪bool

Definition at line 405 of file Backend.php.

◆ removeEntity()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::removeEntity ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
  $markAsDeleted = true 
)
protected

◆ removeRelatedObjects()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::removeRelatedObjects ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object)
protected

◆ setAggregateRootObjects()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::setAggregateRootObjects ( \TYPO3\CMS\Extbase\Persistence\ObjectStorage  $objects)

Sets the aggregate root objects

Parameters
\TYPO3\CMS\Extbase\Persistence\ObjectStorage$objects

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 290 of file Backend.php.

◆ setChangedEntities()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::setChangedEntities ( \TYPO3\CMS\Extbase\Persistence\ObjectStorage  $entities)

Sets the changed objects

Parameters
\TYPO3\CMS\Extbase\Persistence\ObjectStorage$entities

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 300 of file Backend.php.

◆ setDeletedEntities()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::setDeletedEntities ( \TYPO3\CMS\Extbase\Persistence\ObjectStorage  $entities)

Sets the deleted objects

Parameters
\TYPO3\CMS\Extbase\Persistence\ObjectStorage$entities

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 310 of file Backend.php.

◆ setPersistenceManager()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::setPersistenceManager ( \TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface  $persistenceManager)
Parameters
\TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface$persistenceManager

Implements TYPO3\CMS\Extbase\Persistence\Generic\BackendInterface.

Definition at line 151 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\$persistenceManager.

◆ updateObject()

bool TYPO3\CMS\Extbase\Persistence\Generic\Backend::updateObject ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
array  $row 
)
protected

◆ updateRelationInRelationTable()

bool TYPO3\CMS\Extbase\Persistence\Generic\Backend::updateRelationInRelationTable ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $parentObject,
  $propertyName,
  $sortingPosition = 0 
)
protected

Updates mm-relation in a relation table

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object‪The related object
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$parentObject‪The parent object
string$propertyName‪The name of the parent object's property where the related objects are stored in
int$sortingPosition‪Defaults to NULL
Returns
‪bool TRUE if update was successfully

Definition at line 780 of file Backend.php.

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateRelationOfObjectToParentObject().

◆ updateRelationOfObjectToParentObject()

TYPO3\CMS\Extbase\Persistence\Generic\Backend::updateRelationOfObjectToParentObject ( \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface  $object,
\TYPO3\CMS\Extbase\DomainObject\AbstractEntity  $parentObject,
  $parentPropertyName,
  $sortingPosition = 0 
)
protected

Updates the fields defining the relation between the object and the parent object.

Parameters
\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface$object
\TYPO3\CMS\Extbase\DomainObject\AbstractEntity$parentObject
string$parentPropertyName
int$sortingPosition

Definition at line 536 of file Backend.php.

References TYPO3\CMS\Extbase\Persistence\Generic\Backend\attachObjectToParentObjectRelationHasMany(), TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_AND_BELONGS_TO_MANY, TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\RELATION_HAS_MANY, and TYPO3\CMS\Extbase\Persistence\Generic\Backend\updateRelationInRelationTable().

Referenced by TYPO3\CMS\Extbase\Persistence\Generic\Backend\persistObjectStorage().

Member Data Documentation

◆ $aggregateRootObjects

TYPO3 CMS Extbase Persistence ObjectStorage TYPO3\CMS\Extbase\Persistence\Generic\Backend::$aggregateRootObjects
protected

Definition at line 41 of file Backend.php.

◆ $changedEntities

TYPO3 CMS Extbase Persistence ObjectStorage TYPO3\CMS\Extbase\Persistence\Generic\Backend::$changedEntities
protected

Definition at line 49 of file Backend.php.

◆ $configurationManager

TYPO3 CMS Extbase Configuration ConfigurationManagerInterface TYPO3\CMS\Extbase\Persistence\Generic\Backend::$configurationManager
protected

◆ $dataMapFactory

TYPO3 CMS Extbase Persistence Generic Mapper DataMapFactory TYPO3\CMS\Extbase\Persistence\Generic\Backend::$dataMapFactory
protected

◆ $deletedEntities

TYPO3 CMS Extbase Persistence ObjectStorage TYPO3\CMS\Extbase\Persistence\Generic\Backend::$deletedEntities
protected

Definition at line 45 of file Backend.php.

◆ $persistenceManager

TYPO3 CMS Extbase Persistence PersistenceManagerInterface TYPO3\CMS\Extbase\Persistence\Generic\Backend::$persistenceManager
protected

◆ $qomFactory

TYPO3 CMS Extbase Persistence Generic Qom QueryObjectModelFactory TYPO3\CMS\Extbase\Persistence\Generic\Backend::$qomFactory
protected

◆ $referenceIndex

TYPO3 CMS Core Database ReferenceIndex TYPO3\CMS\Extbase\Persistence\Generic\Backend::$referenceIndex
protected

The TYPO3 reference index object

Definition at line 75 of file Backend.php.

◆ $reflectionService

TYPO3 CMS Extbase Reflection ReflectionService TYPO3\CMS\Extbase\Persistence\Generic\Backend::$reflectionService
protected

◆ $session

TYPO3 CMS Extbase Persistence Generic Session TYPO3\CMS\Extbase\Persistence\Generic\Backend::$session
protected

◆ $signalSlotDispatcher

TYPO3 CMS Extbase SignalSlot Dispatcher TYPO3\CMS\Extbase\Persistence\Generic\Backend::$signalSlotDispatcher
protected

◆ $storageBackend

TYPO3 CMS Extbase Persistence Generic Storage BackendInterface TYPO3\CMS\Extbase\Persistence\Generic\Backend::$storageBackend
protected

◆ $visitedDuringPersistence

TYPO3 CMS Extbase Persistence ObjectStorage TYPO3\CMS\Extbase\Persistence\Generic\Backend::$visitedDuringPersistence
protected

Definition at line 53 of file Backend.php.