Skip to content
Commit 87268b67 authored by Alexander Schnitzler's avatar Alexander Schnitzler Committed by Anja Leichsenring
Browse files

[TASK] Streamline ClassSchema property api

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.

Releases: master
Resolves: #88612
Change-Id: I838c7b996275341d4ee65e6b6c6a4f7de1b92e28
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61101


Tested-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
parent 19b5ee0f
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment