Feature #19180
closedIntroduce a new caching framework (backported from FLOW3)
0%
Description
Problem:
Caching is a way to speed up rendering of pages as results of expensive operations get stored and reused the next time the expensive operation should be run.
Currently the TYPO3 core uses different caches with different implementations which is not optimal in regard to maintainance.
Solution:
FLOW3 offers a well designed caching framework that is easily extendable to store the cache data in different ways. The framework is also easy to use and through the use of design patterns easy to understand and maintain. Thus the caching framework has been backported to fit the TYPO3 4.x environment.
Notes:
When this cache is shipped with the core, all existing caches can be changed to the new system. This can give us additional flexibility so that you could one day store the page cache in the DB, the other day use the file system and next week store the pages in memcached.
There is an extension attached so that testing is easy and you can get an idea on how to use the system (which is quite easy). (don't judge the extension's code though)
The API is not complete however, as f.e. a method $cache->findByTag() is not available yet. I'm going to provide these missing bits and another storage backend in an upcoming commit.
Why not putting the unmodified FLOW3 classes into typo3/contrib/ ?- I tried that as it first looked like it would/could work
- when starting to do so it turned out that we would need more classes then wanted and that there were depencies that would require us to include a long tail of other classes
- we (at least) use the same concepts as FLOW3
- we already have the same (identical) naming as in FLOW3 (so migration to FLOW3 is a matter of search and replace)
- the classes fit 4.x coding guidelines
- we get what we need, but not more
- additional development on our side can still be ported to FLOW3 if necessary
(issue imported from #M9097)
Files