Work in progress.
This PR intends to use a proper cache for the DI container so definitions will be cached, and to replace all other caches for 'static' information (such as Dimensions, Reports, etc.) w/ DI. This should create a single caching layer for this information that users can configure through INI config.
TODO: - [x] Add new definition source for components (ie Reports, Dimensions, etc.). - [ ] Test Piwik when using a cross-process static cache. Including INI setting change + plugin activate/reload. Definition sources that provide runtime data should reset the static data cache. - [ ] Benchmark. (benchmarking tracking should be enough, it's the only part of Piwik that will be truly affected by DI caching, and if tracking is OK, then all other requests should be OK). - [ ] create 'auto' static cache backend option that detects available caches and picks the best. this should be the default. - [ ] replace components.classes. DI requests w/ DI injected instances and see if performance degrades
Moving to 3.0, not needed for LTS version.
Thank you for this proposed pull request.
Because it was last updated more than one month ago, it is our policy to close pull requests opened for a long time without updates. If you would like to continue work on the pull request, please simply ping us to have it re-opened (after you have pushed a new commit).
We hope you understand this and we look forward to seeing an update from you on this pull request or another one!