SiteState
    
            
            in package
            
        
    
    
            
            Uses
                            Configurable,                             Injectable                    
    
Class SiteState
Determine and apply the state of the site currently. This is used at index-time to figure out what state to index. An example of this is the FluentSearchVariant extension from Fluent.
Fluent uses the old SearchVariant method, which is actually not that bad a concept. These "Variants", now called "States" set the state of the site to a required setting for each available state.
States SHOULD add their own states through an extension of this class and implement , otherwise it won't be called.
States, options, etc. are simplified for a more streamlined approach
Table of Contents
Constants
- DEFAULT_STATE = 'default'
 
Properties
- $enabled : bool
 - $states : array<string|int, mixed>
 - States that can be applied
 - $variants : array<string|int, mixed>
 - Variants of SiteState that can be activated
 - $defaultStates : array<string|int, mixed>
 - $state : string
 
Methods
- addState() : void
 - Add a state
 - addStates() : void
 - Add multiple states
 - alterQuery() : void
 - Alter the query for each instance
 - appliesToEnvironment() : bool
 - Does this state apply to the current object/environment settings
 - currentStates() : array<string|int, mixed>
 - Get the current state of every variant
 - getDefaultStates() : array<string|int, mixed>
 - Get the states set as default
 - getStates() : array<string|int, mixed>
 - Get available states
 - hasExtension() : bool
 - Does this class, it's parent (or optionally one of it's children) have the passed extension attached?
 - isApplicable() : bool
 - Is this extension applied and instantiable, and should it be applied to the current state of the site
 - isEnabled() : bool
 - Is this state enabled
 - setDefaultStates() : void
 - Set the default states
 - setEnabled() : void
 - Set the state to whatever is required. Most commonly true
 - setStates() : void
 - Set states
 - variants() : array<string|int, mixed>
 - Returns an array of variants.
 - withState() : void
 - Activate a site state for indexing
 
Constants
DEFAULT_STATE
    public
        mixed
    DEFAULT_STATE
    = 'default'
    
    
    
Properties
$enabled
    public
        bool
    $enabled
     = true
    
        Is this State enabled
$states
States that can be applied
    public
    static    array<string|int, mixed>
    $states
     = [self::DEFAULT_STATE]
    
    
    
$variants
Variants of SiteState that can be activated
    public
    static    array<string|int, mixed>
    $variants
     = []
    
    
    
$defaultStates
    protected
    static    array<string|int, mixed>
    $defaultStates
     = []
    
        Default states
$state
    protected
        string
    $state
    
    
        current state
Methods
addState()
Add a state
    public
            static        addState( $state) : void
    Parameters
Tags
addStates()
Add multiple states
    public
            static        addStates(array<string|int, mixed> $states) : void
    Parameters
- $states : array<string|int, mixed>
 
Tags
alterQuery()
Alter the query for each instance
    public
            static        alterQuery(BaseQuery &$query) : void
    Parameters
- $query : BaseQuery
 
Tags
appliesToEnvironment()
Does this state apply to the current object/environment settings
    public
                    appliesToEnvironment() : bool
    Return values
boolcurrentStates()
Get the current state of every variant
    public
            static        currentStates() : array<string|int, mixed>
    Tags
Return values
array<string|int, mixed>getDefaultStates()
Get the states set as default
    public
            static        getDefaultStates() : array<string|int, mixed>
    Return values
array<string|int, mixed>getStates()
Get available states
    public
            static        getStates() : array<string|int, mixed>
    Tags
Return values
array<string|int, mixed>hasExtension()
Does this class, it's parent (or optionally one of it's children) have the passed extension attached?
    public
            static        hasExtension(string $class, string $extension) : bool
    Parameters
- $class : string
 - $extension : string
 
Tags
Return values
boolisApplicable()
Is this extension applied and instantiable, and should it be applied to the current state of the site
    public
            static        isApplicable( $variantClass) : bool
    Parameters
Tags
Return values
boolisEnabled()
Is this state enabled
    public
                    isEnabled() : bool
    Return values
boolsetDefaultStates()
Set the default states
    public
            static        setDefaultStates(array<string|int, mixed> $defaultStates) : void
    Parameters
- $defaultStates : array<string|int, mixed>
 
setEnabled()
Set the state to whatever is required. Most commonly true
    public
                    setEnabled(bool $enabled) : void
    Parameters
- $enabled : bool
 
setStates()
Set states
    public
            static        setStates(array<string|int, mixed> $states) : void
    Parameters
- $states : array<string|int, mixed>
 
Tags
variants()
Returns an array of variants.
    public
            static        variants([bool $force = false ]) : array<string|int, mixed>
    Parameters
- $force : bool = false
 - 
                    
Force updating the variants
 
Tags
Return values
array<string|int, mixed> —- An array of (string)$variantClassName => (Object)$variantInstance pairs
 
withState()
Activate a site state for indexing
    public
            static        withState( $state) : void