PHPackages                             aoe/extracache - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. aoe/extracache

ArchivedTypo3-cms-extension[Caching](/categories/caching)

aoe/extracache
==============

Extends staticcache with more functionality.

0.9.1(9y ago)21.2kGPL-3.0PHP

Since Mar 18Pushed 8y ago12 watchersCompare

[ Source](https://github.com/AOEpeople/TYPO3-Extra-Cache)[ Packagist](https://packagist.org/packages/aoe/extracache)[ Docs](https://forge.typo3.org/projects/extension-extracache)[ RSS](/packages/aoe-extracache/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (10)Versions (7)Used By (0)

```
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
		1. TYPO3-Frontend must be called (normaly) via index.php
		2. 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
		1. TYPO3-Frontend must be called (normaly) via index.php
		2. '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)
		3. 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):
		1. You must enable contentProcessors in the Extension-Manager of this extension
		2. You must implement one or more contentProcessors in your own extension (your contentProcessor must implement the interface Tx_Extracache_System_ContentProcessor_Interface)
		3. 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?
			1. Install extension 'nc_staticfilecache'

			2. 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)

			3. 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)');

			4. define cache-event:
			$configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extracache_Configuration_ConfigurationManager');
			$configurationManager->addEvent( 'onUpdateProductCatalogue', 'productCatalogue was updated' );

			5. 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)

			6. 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.
```

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~77 days

Total

7

Last Release

3290d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6331769?v=4)[AOE](/maintainers/AOEpeople)[@AOEpeople](https://github.com/AOEpeople)

---

Top Contributors

[![chetan-thapliyal](https://avatars.githubusercontent.com/u/1963399?v=4)](https://github.com/chetan-thapliyal "chetan-thapliyal (4 commits)")[![StefanMasz](https://avatars.githubusercontent.com/u/1201475?v=4)](https://github.com/StefanMasz "StefanMasz (3 commits)")[![kschu91](https://avatars.githubusercontent.com/u/5566756?v=4)](https://github.com/kschu91 "kschu91 (2 commits)")[![thomasschuster](https://avatars.githubusercontent.com/u/164036?v=4)](https://github.com/thomasschuster "thomasschuster (2 commits)")[![soda-2005](https://avatars.githubusercontent.com/u/10192689?v=4)](https://github.com/soda-2005 "soda-2005 (1 commits)")

---

Tags

extbasetypo3extracache

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/aoe-extracache/health.svg)

```
[![Health](https://phpackages.com/badges/aoe-extracache/health.svg)](https://phpackages.com/packages/aoe-extracache)
```

###  Alternatives

[aimeos/aimeos-typo3

Professional, full-featured and high performance TYPO3 e-commerce extension for online shops and complex B2B projects

1.5k92.9k5](/packages/aimeos-aimeos-typo3)[pagemachine/typo3-formlog

Form log for TYPO3

23233.9k8](/packages/pagemachine-typo3-formlog)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.0M7](/packages/netresearch-rte-ckeditor-image)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22249.2k](/packages/eliashaeussler-typo3-warming)[in2code/femanager

Modern TYPO3 Frontend User Registration.

50774.5k7](/packages/in2code-femanager)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

41515.2k](/packages/wazum-sluggi)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
