/** * This function prepares and returns the Persistance Manager * * @return Tx_Extbase_Persistence_Manager A (singleton) instance of the Persistence Manager */ public static function getPersistenceManager() { if (self::$persistenceManager === NULL) { $identityMap = t3lib_div::makeInstance('Tx_Extbase_Persistence_IdentityMap'); $persistenceSession = t3lib_div::makeInstance('Tx_Extbase_Persistence_Session'); // singleton $dataMapFactory = t3lib_div::makeInstance('Tx_Extbase_Persistence_Mapper_DataMapFactory'); $dataMapFactory->injectReflectionService(self::$reflectionService); $dataMapper = t3lib_div::makeInstance('Tx_Extbase_Persistence_Mapper_DataMapper'); // singleton $dataMapper->injectIdentityMap($identityMap); $dataMapper->injectSession($persistenceSession); $dataMapper->injectReflectionService(self::$reflectionService); $dataMapper->injectDataMapFactory($dataMapFactory); $storageBackend = t3lib_div::makeInstance('Tx_Extbase_Persistence_Storage_Typo3DbBackend', $GLOBALS['TYPO3_DB']); // singleton $storageBackend->injectDataMapper($dataMapper); $qomFactory = t3lib_div::makeInstance('Tx_Extbase_Persistence_QOM_QueryObjectModelFactory', $storageBackend); $dataMapper->setQomFactory($qomFactory); $persistenceBackend = t3lib_div::makeInstance('Tx_Extbase_Persistence_Backend', $persistenceSession, $storageBackend); // singleton $persistenceBackend->injectDataMapper($dataMapper); $persistenceBackend->injectIdentityMap($identityMap); $persistenceBackend->injectReflectionService(self::$reflectionService); $persistenceBackend->injectQueryFactory(t3lib_div::makeInstance('Tx_Extbase_Persistence_QueryFactory')); $persistenceBackend->injectQomFactory($qomFactory); $objectManager = t3lib_div::makeInstance('Tx_Extbase_Object_Manager'); // singleton $persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'); // singleton $persistenceManager->injectBackend($persistenceBackend); $persistenceManager->injectSession($persistenceSession); $persistenceManager->injectObjectManager($objectManager); self::$persistenceManager = $persistenceManager; } return self::$persistenceManager; }
/** * Injects the Persistence Manager * * @param Tx_Extbase_Persistence_Manager An instance of the Persistence Manager * @return void */ public function injectPersistenceManager(Tx_Extbase_Persistence_Manager $persistenceManager) { self::$persistenceManager = $persistenceManager; }