/** * @return Tx_PtExtbase_State_Session_SessionPersistenceManager */ protected function buildSessionPersistenceManager() { // Determine class name of session storage class to use for session persistence if (TYPO3_MODE === 'FE') { $sessionPersistenceStorageAdapterClassName = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Extbase_ExtbaseContext')->isInCachedMode() ? $this->configurationBuilder->buildBaseConfiguration()->getCachedSessionStorageAdapter() : $this->configurationBuilder->buildBaseConfiguration()->getUncachedSessionStorageAdapter(); // We are in uncached mode } else { $sessionPersistenceStorageAdapterClassName = Tx_PtExtbase_State_Session_SessionPersistenceManager::STORAGE_ADAPTER_BROWSER_SESSION; } // Instantiate session storage for determined class name $sessionStorageAdapter = call_user_func($sessionPersistenceStorageAdapterClassName . '::getInstance'); $this->sessionPersistenceManager = $this->sessionPersistenceManagerBuilder->getInstance($sessionStorageAdapter); }
/** * Read the Session data into the cache */ protected static function loadLifeCycleManager(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { // TODO use DI here once refactoring is finished $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); /* @var $objectManager \TYPO3\CMS\Extbase\Object\ObjectManager */ $lifecycleManager = $objectManager->get('Tx_PtExtbase_Lifecycle_Manager'); /* @var $lifecycleManager Tx_PtExtbase_Lifecycle_Manager */ $sessionPersistenceManagerBuilder = $objectManager->get('Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder'); /* @var $sessionPersistenceManagerBuilder Tx_PtExtbase_State_Session_SessionPersistenceManagerBuilder */ $sessionPersistenceManager = $sessionPersistenceManagerBuilder->getInstance(); $getPostVarAdapterFactory = $objectManager->get('Tx_PtExtlist_Domain_StateAdapter_GetPostVarAdapterFactory'); /* @var $getPostVarAdapterFactory Tx_PtExtlist_Domain_StateAdapter_GetPostVarAdapterFactory */ $getPostVarAdapter = $getPostVarAdapterFactory->getInstance(); $lifecycleManager->registerAndUpdateStateOnRegisteredObject($sessionPersistenceManager); // If we have resetOnEmptySubmit, we reset session data here if ($configurationBuilder->buildBaseConfiguration()->getResetOnEmptySubmit() && $getPostVarAdapter->isEmptySubmit()) { $sessionPersistenceManager->resetSessionData(); } }