Skip to content
Snippets Groups Projects
Commit 03543ce3 authored by Benjamin Franzke's avatar Benjamin Franzke Committed by Andreas Fernandez
Browse files

[TASK] Instantiate Context through dependency injection

Context is stateful as Aspects dependent on the (currently dispatched)
request type (frontend/backend/installtool/CLI).
Reqest-dependent arguments can not be injected during service
creation; therefore the Context class is now created without default
aspects and enhanced by the application classes (on demand).

Note: The UserAspect constructor is adapted to use an explicit stdClass
allocation instead of an immutable array casted to an object for the
(fallback) pseudo user. This is to avoid php segmentation faults in
functional tests (and also random unit test runs). The segmentation
faults would be triggered due to the constructor change in the Context
class, which now uses ondemand instead of preemptive Aspect creation.
Background: immutable arrays are stored on stack. The cast to an object
probably didn't relocate this memory to the heap which then causes
segmentations faults when the static memory area (on stack) is exceeded.

Releases: master
Resolves: #88793
Change-Id: Ib165f85b66b34e8025e28ef483260463f1e2c826
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61274


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarSusanne Moog <look@susi.dev>
Tested-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: default avatarSusanne Moog <look@susi.dev>
Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
parent 36dad0b7
Branches
Tags
No related merge requests found
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