/** * Load ext_tables and friends. * * This will mainly set up $TCA and several other global arrays * through API's like extMgm. * Executes ext_tables.php files of loaded extensions or the * according cache file if exists. * * @param bool $allowCaching True, if reading compiled ext_tables file from cache is allowed * @return Bootstrap * @internal This is not a public API method, do not use in own extensions */ public function loadExtensionTables($allowCaching = true) { ExtensionManagementUtility::loadBaseTca($allowCaching); ExtensionManagementUtility::loadExtTables($allowCaching); $this->runExtTablesPostProcessingHooks(); return $this; }
/** * @test */ public function loadExtTablesRequiresCacheFileIfExistsAndCachingIsAllowed() { $mockCache = $this->getMock(AbstractFrontend::class, array('getIdentifier', 'set', 'get', 'getByTag', 'has', 'remove', 'flush', 'flushByTag', 'requireOnce'), array(), '', FALSE); /** @var CacheManager|\PHPUnit_Framework_MockObject_MockObject $mockCacheManager */ $mockCacheManager = $this->getMock(CacheManager::class, array('getCache')); $mockCacheManager->expects($this->any())->method('getCache')->will($this->returnValue($mockCache)); ExtensionManagementUtilityAccessibleProxy::setCacheManager($mockCacheManager); $mockCache->expects($this->any())->method('has')->will($this->returnValue(TRUE)); $mockCache->expects($this->once())->method('requireOnce'); // Reset the internal cache access tracking variable of extMgm // This method is only in the ProxyClass! ExtensionManagementUtilityAccessibleProxy::resetExtTablesWasReadFromCacheOnceBoolean(); ExtensionManagementUtility::loadExtTables(TRUE); }
/** * Load ext_tables and friends. * * This will mainly set up $TCA and several other global arrays * through API's like extMgm. * Executes ext_tables.php files of loaded extensions or the * according cache file if exists. * * @param boolean $allowCaching True, if reading compiled ext_tables file from cache is allowed * @return Bootstrap * @internal This is not a public API method, do not use in own extensions */ public function loadExtensionTables($allowCaching = TRUE) { Utility\ExtensionManagementUtility::loadBaseTca($allowCaching); Utility\ExtensionManagementUtility::loadExtTables($allowCaching); $this->executeExtTablesAdditionalFile(); $this->runExtTablesPostProcessingHooks(); return $this; }
/** * Load ext_tables and friends. * * This will mainly set up $TCA and several other global arrays * through API's like extMgm. * Executes ext_tables.php files of loaded extensions or the * according cache file if exists. * * Note: For backwards compatibility some global variables are * explicitly set as global to be used without $GLOBALS[] in * ext_tables.php. It is discouraged to access variables like * $TBE_MODULES directly in ext_tables.php, but we can not prohibit * this without heavily breaking backwards compatibility. * * @TODO : We could write a scheduler / reports module or an update checker * @TODO : It should be defined, which global arrays are ok to be manipulated * @param boolean $allowCaching True, if reading compiled ext_tables file from cache is allowed * @return \TYPO3\CMS\Core\Core\Bootstrap * @internal This is not a public API method, do not use in own extensions */ public function loadExtensionTables($allowCaching = TRUE) { // It is discouraged to use those global variables directly, but we // can not prohibit this without breaking backwards compatibility global $T3_SERVICES, $T3_VAR, $TYPO3_CONF_VARS; global $TBE_MODULES, $TBE_MODULES_EXT, $TCA; global $PAGES_TYPES, $TBE_STYLES, $FILEICONS; global $_EXTKEY; // Include standard tables.php file require PATH_t3lib . 'stddb/tables.php'; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::loadExtTables($allowCaching); // Load additional ext tables script if registered if (TYPO3_extTableDef_script) { include PATH_typo3conf . TYPO3_extTableDef_script; } // Run post hook for additional manipulation $this->runExtTablesPostProcessingHooks(); return $this; }
/** * @test */ public function loadExtTablesRequiresCacheFileIfExistsAndCachingIsAllowed() { $mockCache = $this->getMock('TYPO3\\CMS\\Core\\Cache\\Frontend\\AbstractFrontend', array('getIdentifier', 'set', 'get', 'getByTag', 'has', 'remove', 'flush', 'flushByTag', 'requireOnce'), array(), '', FALSE); $GLOBALS['typo3CacheManager'] = $this->getMock('TYPO3\\CMS\\Core\\Cache\\CacheManager', array('getCache')); $GLOBALS['typo3CacheManager']->expects($this->any())->method('getCache')->will($this->returnValue($mockCache)); $mockCache->expects($this->any())->method('has')->will($this->returnValue(TRUE)); $mockCache->expects($this->once())->method('requireOnce'); // Reset the internal cache access tracking variable of extMgm // This method is only in the ProxyClass! \TYPO3\CMS\Core\Utility\ExtensionManagementUtilityAccessibleProxy::resetExtTablesWasReadFromCacheOnceBoolean(); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::loadExtTables(TRUE); }