Feature #2284
Make Reflection caching more intelligent
Status: | Resolved | Start date: | 2008-12-09 | |
---|---|---|---|---|
Priority: | Must have | Due date: | ||
Assigned To: | Robert Lemke | % Done: | 100% |
|
Category: | Reflection | |||
Target version: | TYPO3 Flow Base Distribution - 1.0 alpha 1 | |||
PHP Version: | Complexity: | |||
Has patch: |
Description
The Reflection Service caches all the reflection information. If a class is altered, the cache is not automatically cleared because FLOW3 just doesn't know about it - the reflection information becomes inaccurate. Furthermore it is only possible to flush the whole reflection cache and not only the information related to a specific class.
We need some File Alteration Monitoring which automatically monitors all class files (in development context) and flushes the relevant parts of the reflection cache if classes are modified.
Associated revisions
Note: Although this commit contains the new File/Class Alteration Monitoring which is supposed to speed up FLOW3, a lot of speed optimizations are still missing and will follow during the next days.
- FLOW3: Started cleaning up the bootstrap. Addresses #2117
- FLOW3: Implemented a first version of a Class Alteration Monitoring which automatically flushes cache entries based on class reflection. Addresses #2284
- FLOW3: (Reflection) Refactored the Reflection Service so that information for one class can be flushed / rebuild individually instead of having to rebuild the whole reflection information. Resolves #2284
- FLOW3: (Cache) Fixed the *byTag() methods in the File Backend: If cache entry identifiers contained an underscore "_", the findByTag etc. didn't work any more. Now using "-" as an internal separator.
- FLOW3: (Utility) The temporary directory base is now set via a setter method instead of passing the whole FLOW3 settings to the constructor
- Testing: Adjusted the test runner to reflect the new bootstrap initialization methods
Note: Although this commit contains the new File/Class Alteration Monitoring which is supposed to speed up FLOW3, a lot of speed optimizations are still missing and will follow during the next days.
- FLOW3: Started cleaning up the bootstrap. Addresses #2117
- FLOW3: Implemented a first version of a Class Alteration Monitoring which automatically flushes cache entries based on class reflection. Addresses #2284
- FLOW3: (Reflection) Refactored the Reflection Service so that information for one class can be flushed / rebuild individually instead of having to rebuild the whole reflection information. Resolves #2284
- FLOW3: (Cache) Fixed the *byTag() methods in the File Backend: If cache entry identifiers contained an underscore "_", the findByTag etc. didn't work any more. Now using "-" as an internal separator.
- FLOW3: (Utility) The temporary directory base is now set via a setter method instead of passing the whole FLOW3 settings to the constructor
- Testing: Adjusted the test runner to reflect the new bootstrap initialization methods
History
#1 Updated by Robert Lemke over 6 years ago
- Status changed from Accepted to Resolved
- % Done changed from 0 to 100
Applied in changeset r1582.