Context implements SingletonInterface

Contains the state of a current page request, to be used when reading information of the current request in which configuration/context it is used.

Typically, the current main context is initialized very early within each entry-point application, and is then modified overridden in e.g. PSR-15 middlewares (e.g. authentication, preview settings etc).

For most use-cases, the current main context is fetched via GeneralUtility::makeInstance(Context::class), however, if custom settings for a single use-case is necessary, it is recommended to clone the base context:

$mainContext = GeneralUtility::makeInstance(Context::class);
$customContext = clone $mainContext;
$customContext->setAspect(GeneralUtility::makeInstance(VisibilityAspect::class, true, true, false))

... which in turn can be injected in the various places where TYPO3 uses contexts.

Classic aspect names to be used are:

  • date (DateTimeAspect)
  • workspace
  • visibility
  • frontend.user
  • backend.user
  • language
  • frontend.preview [if EXT:frontend is loaded]

Table of Contents

Interfaces

SingletonInterface
"empty" interface for singletons (marker interface pattern)

Properties

$aspects  : array<string|int, AspectInterface>

Methods

getAspect()  : AspectInterface
Returns an aspect, if it is set
getPropertyFromAspect()  : mixed
Returns a property from the aspect, but only if the property is found.
hasAspect()  : bool
Checks if an aspect exists in the context
setAspect()  : void
Sets an aspect, or overrides an existing aspect if an aspect is already set
unsetAspect()  : void

Properties

Methods

getPropertyFromAspect()

Returns a property from the aspect, but only if the property is found.

public getPropertyFromAspect(string $name, string $property[, mixed $default = null ]) : mixed
Parameters
$name : string
$property : string
$default : mixed = null
Tags
throws
AspectNotFoundException

hasAspect()

Checks if an aspect exists in the context

public hasAspect(string $name) : bool
Parameters
$name : string
Return values
bool

setAspect()

Sets an aspect, or overrides an existing aspect if an aspect is already set

public setAspect(string $name, AspectInterface $aspect) : void
Parameters
$name : string
$aspect : AspectInterface

unsetAspect()

public unsetAspect(string $name) : void
Parameters
$name : string
Internal

Using this method is a sign of a technical debt. It is used by RedirectService, but may vanish any time when this is fixed, and thus internal. In general, Context aspects should never have to be unset. When a middleware has to use this method, it is either located at the wrong position in the chain, or has some other dependency issue.


        
On this page

Search results