Project

General

Profile

Task #88612

Updated by Alexander Schnitzler almost 5 years ago

This patch tackles three different issues with the current 
 ClassSchema property api. 

 1) Due to the history and the refactoring of the ReflectionService, 
 
    the ClassSchema class cached data redundantly. Information like 
 
    the type of a property has been stored multiple times in different 
 
    cache keys. With this patch, the redundancy has been removed. 

 

  2) The information about properties had been roughly grouped by the 
 
     ones gathered by php reflection and the ones gathered from doc 
 
     blocks and/or annotations. This kind of grouping had also been 
 
     exposed to the public by different methods in the Property class. 

 

     Said grouping has been removed and the api does no longer allow 
 
     for requesting annotation data. The purpose of the api is to tell 
 
     the status quo of the information about a property, regardless of 
 
     how said information had been gathered in the first place. 

 

     Instead of exposing the annotation data itself via method 
 
     `getAnnotationValue('lazy')`, there is a specific method for each 
 
     relevant piece of information like `isLazy()`. 

 

  3) A lot of information about properties are boolean values which 
 
     had been stored as separate keys in the cache. All boolean keys 
 
     are now represented by a BitSet, which saves quite a lot of 
 
     bytes during serialization of ClassSchema instances.

Back