Download the PHP package aoe/extracache without Composer
On this page you can find all versions of the php package aoe/extracache. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download aoe/extracache
More information about aoe/extracache
Files in aoe/extracache
Package extracache
Short Description Extends staticcache with more functionality.
License GPL-3.0
Homepage https://forge.typo3.org/projects/extension-extracache
Informations about the package extracache
Overview of system related internals used or defined by the extension 'extracache'
1) What does this extension provides?
- Cache TYPO3-pages with nc_staticfilecache and modify statically cached content before sending it to the client
- Cache TYPO3-pages with nc_staticfilecache for different FE-user-groups (if option 'supportFeUsergroups' is enabled)
- Cache TYPO3-pages with nc_staticfilecache even if the URL contain GET-params (this extension can cache and/or ignore GET-params)
- Delete or update statically cached content if a certain event occur
- Support of contentProcessors to modify content, before the content will be send to the client
- Support of events
- BE-modul for admins to show infos and delete statically cached content
- Scheduler-Task to clean-up removed files (files will not be deleted immediately (if editor delete them inside the TYPO3-BE), because statically cached content maybe have references to that files). Execute this scheduler-task not till then all statically cached content have been deleted or updated, so they have no more references to the deleted files!
- Scheduler-Task to process cache-events. If you define cache-events and they should not processed instantly, than you must use this scheduler-task to process them later.
2) How does this extension works? 2.1) Save content to staticCache
- TYPO3-Frontend must be called (normaly) via index.php
-
At the End of the page-generation-process, nc_staticfilecache will create (if possible) a staticCache- and database-entry. nc_staticfilecache provides some hooks to modify the content, which should be cached. This extension uses that hooks, to modify the content, so that we can e.g. support different FE-usergroups.
2.2) LOAD statically cached content
- TYPO3-Frontend must be called (normaly) via index.php
- 'preprocessRequest'-Hook in tslib/index_ts.php will be used, to check, if the request can be responsed via statically cached content (the statically cached content must be written before via nc_staticfilecache)
- If statically cached content is available, modify the cached content (if required) and send it to the client
3) Which interfaces provides this extension?
-
You can define several arguments (take a look at class Tx_Extracache_Domain_Model_Argument for further information): \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager')->addArgument( [type], [name], [value] );
-
You can define several cache-cleanerStrategies (take a look at class Tx_Extracache_Domain_Model_CleanerStrategy for further information): \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager')->addCleanerStrategy( [actions], [childrenMode], [elementsMode], [key], [name] );
-
You can define several cache-events (take a look at class Tx_Extracache_Domain_Model_Event for further information): \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager')->addEvent( [key], [name], [interval] );
-
You can use several events to modfiy/add logic (the most important events are defined in Classes/System/Event/Events/) if you add your own eventHandler to Tx_Extracache_System_Event_Dispatcher: \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Dispatcher')->addHandler( [eventName], [handlerObject], [handlerObjectMethod] ); \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Dispatcher')->addLazyLoadingHandler( [eventName], [handlerObjectName], [handlerObjectMethod] );
-
You can trigger the event 'onFaultyPages' to define, that the called page should not be cached statically (because e.g. an error/exception occured, so the generated page maybe contains a warning, which you don't want to cache statically): \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Dispatcher')->triggerEvent( 'onFaultyPages' ); OR $event = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Events_EventOnFaultyPages'); \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Dispatcher')->triggerEvent( $event );
-
You can trigger cache-events: $event = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Events_EventOnProcessCacheEvent', [cacheEvent]); \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Dispatcher')->triggerEvent( $event );
- You can define contentProcessors (which modify the content before the content will be send to the client):
- You must enable contentProcessors in the Extension-Manager of this extension
- You must implement one or more contentProcessors in your own extension (your contentProcessor must implement the interface Tx_Extracache_System_ContentProcessor_Interface)
- You must add your contentProcessor to this extension: \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager')->addContentProcessorDefinition([classNameOfYourContentProcessor], [pathToYourContentProcessorIncludeThePhpFile])
4) How can i define this: 4.1) Delete statically cached content of all subpages and all variants of page X and update statically cached content of page X if event 'onUpdateProductCatalogue' occur?
-
Install extension 'nc_staticfilecache'
-
activate option 'markDirtyInsteadOfDeletion' of nc_staticfilecache-Extension inside the extension-manager (this is important, so we can delete the TYPO3-cache, but the statically cached content is still there)
-
define cache-cleanerStrategies: $configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager'); $configurationManager->addCleanerStrategy(Tx_Extracache_Domain_Model_CleanerStrategy::ACTION_TYPO3Clear, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ChildrenWithParent, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ElementsNoAction, 'clear_frontendcache_all', 'Clear: Frontend-Cache (page with subpages)'); $configurationManager->addCleanerStrategy(Tx_Extracache_Domain_Model_CleanerStrategy::ACTION_StaticClear, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ChildrenOnly, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ElementsWithParent, 'clear_subpages_with_elements', 'Clear: subpages (with variants)'); $configurationManager->addCleanerStrategy(Tx_Extracache_Domain_Model_CleanerStrategy::ACTION_StaticClear, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ChildrenNoAction, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ElementsOnly, 'clear_page_only_elements', 'Clear: page (only variants)'); $configurationManager->addCleanerStrategy(Tx_Extracache_Domain_Model_CleanerStrategy::ACTION_StaticUpdate, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ChildrenNoAction, Tx_Extracache_Domain_Model_CleanerStrategy::CONSIDER_ElementsNoAction, 'update_page_without_elements', 'Update: page (without variants)');
-
define cache-event: $configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager'); $configurationManager->addEvent( 'onUpdateProductCatalogue', 'productCatalogue was updated' );
-
Configure page X in TYPO3-BE (add created cache-cleanerStrategies (in correct order, as you defined them) and cache-event to the page-properties of page X)
- Process event 'onUpdatedProductCatalogue': $event = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Events_EventOnProcessCacheEvent', 'onUpdateProductCatalogue'); \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_System_Event_Dispatcher')->triggerEvent( $event );
5) Error codes as delivered to Tx_Extbase_Validation_Validator_AbstractValidator:addError()
-
Tx_Extracache_Validation_Validator_Argument
- 1289897741: checkName() -> 'name is not valid'
- 1289897742: checkType() -> 'type is not supported'
- 1289897743: checkValue() -> 'value is not valid (must be one of {TRUE, is_array, is_string})'
- 1289897744: checkValue() -> 'value is an empty array (must have items if is_array)'
-
Tx_Extracache_Validation_Validator_CleanerStrategy
- 1289897851: isValid() -> 'cleanerStrategy with key does not exist'
- 1289897852: actionsAreValid() -> 'actions do not contain any valid action'
- 1289897853: childrenModeIsValid() -> 'childrenMode is not supported'
- 1289897854: elementModeIsValid() -> 'elementMode is not supported'
- Tx_Extracache_Validation_Validator_Event
- 1289898441: isValid() -> 'event with key does already exist'
- 1291388576: isValid() -> 'interval is not a positive integer-value'
This extension is no longer actively maintained.