Feature #2284

Make Reflection caching more intelligent

Added by Robert Lemke almost 11 years ago. Updated almost 9 years ago.

Status:
Resolved
Priority:
Must have
Assignee:
Category:
Reflection
Start date:
2008-12-09
Due date:
% Done:

100%

PHP Version:
Has patch:
Complexity:

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 (diff)
Added by Robert Lemke almost 11 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 (diff)
Added by Robert Lemke almost 11 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 almost 11 years ago

  • Status changed from Accepted to Resolved
  • % Done changed from 0 to 100

Applied in changeset r1582.

Also available in: Atom PDF