b13 / graceful-cache
TYPO3 cache backends which do not always have to be enabled
Installs: 6 366
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 8
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
Requires
- php: ^7.2 || ^8.0
- psr/log: ^1.0 || ^2.0 || ^3.0
- typo3/cms-core: ^9.5 || ^10.4 || ^11.0 || ^12.0
Requires (Dev)
- typo3/coding-standards: ^0.2.0
Suggests
- ext-memcached: When Memcached Cache Backends are in use.
- ext-redis: When Redis Cache Backends are in use.
README
We don't want our websites to be down because the cache backend used, e.g. "redis" or "memcached" has a temporary issue. Instead, the page should be loaded, but trigger warnings and errors and such, but still render a page without active caches.
For this reason, we provide Cache Backends which simply catch all Exceptions.
We use this for High Availability projects, where a Redis sentinel cluster is not available but a Redis service is running on each application server to ensure that TYPO3 does never throw a 50x HTTP error because of a caching issue.
Installation
When running TYPO3 in Composer Mode composer req b13/graceful-cache
or
download the extension "graceful_cache" via the Extension Manager
from extensions.typo3.org.
Configuration
Use this in your LocalConfiguration.php or AdditionalConfiguration.php to e.g. reconfigure the "pages" Cache (or "cache_pages" prior to TYPO3 v10) to run with the graceful Redis Cache Backend:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['pages']['backend'] = \B13\GracefulCache\Backend\RedisCacheBackend::class;
Or configure with Memcached Cache Backend:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['pages']['backend'] = \B13\GracefulCache\Backend\MemcachedCacheBackend::class;
License
The extension is licensed under GPL v2+, same as the TYPO3 Core. For details see the LICENSE file in this repository.
Credits
This extension was created by Benni Mack in 2020 for b13 GmbH.
Find more TYPO3 extensions we have developed that help us deliver value in client projects. As part of the way we work, we focus on testing and best practices to ensure long-term performance, reliability, and results in all our code.