Breaking: #57594 - Optimize ReflectionService Cache handling¶
See forge#57594
Description¶
The extbase_object
cache has been removed completely and all necessary information about objects,
mainly @inject information, is now fetched from the ReflectionService as well.
The ReflectionService does still create ClassSchema
instances but these were improved a lot. All
necessary information is now gathered during the instantiation of ClassSchema
instances. That means
that all necessary data is fetched once and then it can be used everywhere making any further
reflection superfluous.
As runtime reflection has been removed completely, along with it several reflection classes, that analyzed doc blocks, have been removed as well. These are no longer necessary.
The extbase_reflection
cache is no longer plugin based and will no longer be stored in the database
in the first place. Serialized ClassSchema instances will be stored in typo3temp/var/cache
or var/cache
for
composer-based installations.
The following classes for internal use only and have been removed:
ClassInfo
ClassInfoCache
ClassInfoFactory
ClassReflection
MethodReflection
ParameterReflection
PropertyReflection
The following methods of the PHP class ReflectionService
have been removed:
injectConfigurationManager
setDataCache
initialize
isInitialized
shutdown
Impact¶
Installations using the above classes or methods will throw a fatal error.
Affected Installations¶
Installations using one of the mentioned classes or methods instead of the ReflectionService API.
Migration¶
Use the class ReflectionService
as API which will be automatically initialized on
instantiation.