Feature #2284

Make Reflection caching more intelligent

Added by Robert Lemke over 6 years ago. Updated almost 5 years ago.

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

Revision 132adbf5
Added by Robert Lemke over 6 years ago

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

Revision a2e34b96
Added by Robert Lemke over 6 years ago

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.

Also available in: Atom PDF