ComponentBase

Component base class

abstract class Cms\Classes\ComponentBase
extends Winter\Storm\Extension\Extendable

Extends

Class Description
Extendable

Extension class

Traits

Trait Description
AssetMaker

Asset Maker Trait Adds asset based methods to a class

EventEmitter

Adds system event related features to any class.

ExtendableTrait

This extension trait is used when access to the underlying base class is not available, such as classes that belong to the foundation framework (Laravel). It is currently used by the Controller and Model classes.

PropertyContainer

Property container trait

Properties

public $alias : string

Alias used for this component.

public $componentCssClass : string

Component CSS class name for the back-end page/layout component list. This field is used by the CMS internally.

public $id : string

A unique identifier for this component.

public $inspectorEnabled : bool

Determines whether Inspector can be used with the component. This field is used by the CMS internally.

public $isHidden : bool

Determines whether the component is hidden from the back-end UI.

public $name : string

Component class name or class alias used in the component declaration in a template.

public $pluginIcon : string

Icon of the plugin that defines the component. This field is used by the CMS internally.

protected $controller : Cms\Classes\Controller

Controller object.

protected $dirName : string

Specifies the component directory name.

protected $externalPropertyNames : array

A collection of external property names used by this component.

protected $page : Cms\Classes\PageCode

Page object object.

inherited public $assetPath : string

Inherited from AssetMaker

Specifies a path to the asset directory.

inherited public $implement : string | array | null

Inherited from Extendable

Extensions implemented by this class.

inherited protected $assets : array

Inherited from AssetMaker

Collection of assets to display in the layout.

inherited protected static $extendableCallbacks : array

Inherited from ExtendableTrait

Used to extend the constructor of an extendable class. Eg:

Class::extend(function($obj) { })

inherited protected static $extendableClassLoader : ClassLoader | null

Inherited from ExtendableTrait

Class loader instance.

inherited protected $extendableConstructed : bool

Inherited from Extendable

Indicates if the extendable constructor has completed.

inherited protected static $extendableStaticMethods : array

Inherited from ExtendableTrait

Collection of static methods used by behaviors.

inherited protected $extensionData : array

Inherited from ExtendableTrait

Class reflection information, including behaviors.

inherited protected $localCallbacks : array

Inherited from Extendable

This stores any locally-scoped callbacks fired before the extendable constructor had completed.

inherited protected $orderFactor : integer

Inherited from AssetMaker

Ensures "first-come, first-served" applies to assets of the same ordering.

inherited protected $properties : array

Inherited from PropertyContainer

Contains the object property values.

Methods

public __call (string $method, array $parameters) : mixed

Dynamically handle calls into the controller instance.

Parameters
Property Description
$method
string
$parameters
array
Returns
mixed

public __construct (null | CodeBase $cmsObject = null, array $properties = [])

Component constructor. Takes in the page or layout code section object and properties set by the page or layout.

Parameters
Property Description
$cmsObject
null | CodeBase
$properties
array
Returns
mixed

public __toString ()

Returns the component's alias, used by SELF

Returns
mixed

public componentDetails () : array

Returns information about this component.

This method must be defined in your component and, at a minimum, should return an array with two keys:

  • name: The name of your component.
  • description: The description or purpose of your component.
Returns
array

public getPath ()

Returns the absolute component path.

Returns
mixed

public init ()

Executed when this component is first initialized, before AJAX requests.

Returns
mixed

public onRender ()

Executed when this component is rendered on a page or layout.

Returns
mixed

public onRun ()

Executed when this component is bound to a page or layout, part of the page life cycle.

Returns
mixed

public paramName (string $name, mixed $default = null) : string

Returns the external property name when the property value is a routing parameter reference.

Otherwise the default value specified is returned.

Parameters
Property Description
$name
string

The property name

$default
mixed
Returns
string

public propertyName (string $name, mixed $default = null) : string

Returns the external property name when the property value is an external property reference.

Otherwise the default value specified is returned.

Parameters
Property Description
$name
string

The property name

$default
mixed
Returns
string

public renderPartial ()

Renders a requested partial in context of this component, see Cms\Classes\Controller@renderPartial for usage.

Returns
mixed

public runAjaxHandler ($handler) : bool

Executes the event cycle when running an AJAX handler.

Parameters
Property Description
$handler
mixed
Returns
bool

Returns true if the handler was found. Returns false otherwise.

public setExternalPropertyName (string $name, string $extName) : string

Sets an external property name.

Parameters
Property Description
$name
string

Property name

$extName
string

External property name

Returns
string

public setExternalPropertyNames (array $names) : void

Sets names used by external properties.

Parameters
Property Description
$names
array

The key should be the property name, the value should be the external property name.

Returns
void

inherited public static __callStatic ($name, $params)

Inherited from Extendable
Parameters
Property Description
$name
mixed
$params
mixed
Returns
mixed

inherited public __get ($name)

Inherited from Extendable
Parameters
Property Description
$name
mixed
Returns
mixed

inherited public __set ($name, $value)

Inherited from Extendable
Parameters
Property Description
$name
mixed
$value
mixed
Returns
mixed

inherited public addCss (string | array $name, array $attributes = []) : void

Inherited from AssetMaker

Adds StyleSheet asset to the asset list. Call $this->makeAssets() in a view to output corresponding markup.

Parameters
Property Description
$name
string | array

When an array of paths are provided they will be passed to the Asset Combiner

$attributes
array

When a string is provided it will be used as the 'build' attribute value

Returns
void

inherited public addDynamicMethod (string $dynamicName, callable $method, string $extension = null)

Inherited from ExtendableTrait

Programmatically adds a method to the extendable class

Parameters
Property Description
$dynamicName
string
$method
callable
$extension
string
Returns
mixed

inherited public addDynamicProperty (string $dynamicName, mixed $value = null) : void

Inherited from ExtendableTrait

Programmatically adds a property to the extendable class

Parameters
Property Description
$dynamicName
string

The name of the property to add

$value
mixed

The value of the property

Returns
void

inherited public addJs (string | array $name, array $attributes = []) : void

Inherited from AssetMaker

Adds JavaScript asset to the asset list. Call $this->makeAssets() in a view to output corresponding markup.

Parameters
Property Description
$name
string | array

When an array of paths are provided they will be passed to the Asset Combiner

$attributes
array

When a string is provided it will be used as the 'build' attribute value

Returns
void

inherited public addRss (string $name, array $attributes = []) : void

Inherited from AssetMaker

Adds an RSS link asset to the asset list. Call $this->makeAssets() in a view to output corresponding markup.

Parameters
Property Description
$name
string
$attributes
array
Returns
void

inherited public addVite (array | string $entrypoints, ?string $package = null) : void

Inherited from AssetMaker

Adds Vite tags

Parameters
Property Description
$entrypoints
array | string

The list of entry points for Vite

$package
?string

The package name of the plugin or theme

Returns
void

inherited public asExtension (string $shortName) : mixed

Inherited from ExtendableTrait

Short hand for getClassExtension() method, except takes the short extension name, example:

$this->asExtension('FormController')

Parameters
Property Description
$shortName
string
Returns
mixed

inherited public static clearExtendedClasses () : void

Inherited from ExtendableTrait

Clear the list of extended classes so they will be re-extended.

Returns
void

inherited public combineAssets (array $assets, string $localPath = "") : string

Inherited from AssetMaker

Run the provided assets through the Asset Combiner

Parameters
Property Description
$assets
array
$localPath
string
Returns
string

inherited public defineProperties () : array

Inherited from PropertyContainer

Defines the properties used by this class.

This method should be overriden in your extended class and return an array of properties that your class uses, with the keys of the array being the name of the properties, and the values being an array of property parameters.

Example: return [ 'propertyName' => [ 'title' => 'Property name', 'description' => 'Property description', 'default' => 'Default value' ], ];

Returns
array

inherited public extendClassWith (string $extensionName) : void

Inherited from ExtendableTrait

Dynamically extend a class with a specified behavior

Parameters
Property Description
$extensionName
string
Returns
void

inherited public static extendableAddExtension (callable $callback, boolean $scoped = false, $outerScope = null) : void

Inherited from Extendable

Extends the class using a closure.

The closure will be provided a single parameter which is the instance of the extended class, by default.

You may optionally specify the callback as a scoped callback, which inherits the scope of the extended class and provides access to protected and private methods and properties. This makes any call using $this act on the extended class, not the class providing the extension.

If you use a scoped callback, you can provide the "outer" scope - or the scope of the class providing the extension, with the third parameter. The outer scope object will then be passed as the single parameter to the closure.

Parameters
Property Description
$callback
callable
$scoped
boolean
$outerScope
mixed
Returns
void

inherited public extendableCall (string $name, array $params = null) : mixed

Inherited from ExtendableTrait

Magic method for __call().

Callback priority is as follows:

  • "Dynamic Methods" added locally to the object via addDynamicMethod($name, $callable)
  • Methods available on Behaviors that have been implemented by the object
  • Pass it to the parent's __call() method if it defines one
Parameters
Property Description
$name
string
$params
array
Returns
mixed

inherited public static extendableCallStatic (string $name, array $params = null) : mixed

Inherited from ExtendableTrait

Magic method for __callStatic()

Parameters
Property Description
$name
string
$params
array
Returns
mixed

inherited public extendableConstruct ()

Inherited from ExtendableTrait

This method should be called as part of the constructor.

Returns
mixed

inherited public static extendableExtendCallback (callable $callback, boolean $scoped = false, $outerScope = null) : void

Inherited from ExtendableTrait

Helper method for ::extend() static method.

Parameters
Property Description
$callback
callable
$scoped
boolean
$outerScope
mixed
Returns
void

inherited public extendableGet (string $name) : mixed | null

Inherited from ExtendableTrait

Magic method for __get()

Parameters
Property Description
$name
string
Returns
mixed | null

inherited public extendableSet (string $name, mixed $value) : void

Inherited from ExtendableTrait

Magic method for __set()

Parameters
Property Description
$name
string
$value
mixed
Returns
void

inherited public fireSystemEvent (string $event, array $params = [], boolean $halt = true) : mixed

Inherited from EventEmitter

Fires a combination of local and global events. The first segment is removed from the event name locally and the local object is passed as the first argument to the event globally. Halting is also enabled by default.

For example:

$this->fireSystemEvent('backend.list.myEvent', ['my value']);

Is equivalent to:

$this->fireEvent('list.myEvent', ['myvalue'], true);

Event::fire('backend.list.myEvent', [$this, 'myvalue'], true);
Parameters
Property Description
$event
string

Event name

$params
array

Event parameters

$halt
boolean

Halt after first non-null result

Returns
mixed

inherited public fireViewEvent (string $event, array $params = []) : string

Inherited from EventEmitter

Special event function used for extending within view files, allowing HTML to be injected multiple times.

For example:

= $this->fireViewEvent('backend.auth.extendSigninView') ?>
Parameters
Property Description
$event
string

Event name

$params
array

Event parameters

Returns
string

inherited public flushAssets () : void

Inherited from AssetMaker

Disables the use, and subequent broadcast, of assets. This is useful to call during an AJAX request to speed things up. This method works by specifically targeting the hasAssetsDefined method.

Returns
void

inherited public getAssetPath (string $fileName, $assetPath = null) : string

Inherited from AssetMaker

Returns the URL to the provided asset. If the provided fileName is a relative path without a leading slash it will be assumbed to be relative to the asset path.

Parameters
Property Description
$fileName
string
$assetPath
mixed
Returns
string

inherited public getAssetPaths () : array

Inherited from AssetMaker

Returns an array of all registered asset paths.

Assets will be prioritized based on their defined ordering.

Returns
array

inherited public getClassExtension (string $name) : mixed

Inherited from ExtendableTrait

Returns a behavior object from an extendable class, example:

$this->getClassExtension('Backend.Behaviors.FormController')

Parameters
Property Description
$name
string

Fully qualified behavior name

Returns
mixed

inherited public getClassMethods () : array

Inherited from ExtendableTrait

Get a list of class methods, extension equivalent of get_class_methods()

Returns
array

inherited public getDynamicProperties () : array

Inherited from ExtendableTrait

Returns all dynamic properties and their values

Returns
array

['property' => 'value']

inherited public getProperties () : array

Inherited from PropertyContainer

Returns all properties.

Returns
array

inherited public getPropertyOptions (string $property) : array

Inherited from PropertyContainer

Returns options for multi-option properties (drop-downs, etc.)

Parameters
Property Description
$property
string

Specifies the property name

Returns
array

Return an array of option values and descriptions

inherited public hasAssetsDefined () : bool

Inherited from AssetMaker

Returns true if assets any have been added.

Returns
bool

inherited public isClassExtendedWith (string $name) : bool

Inherited from ExtendableTrait

Check if extendable class is extended with a behavior object

Parameters
Property Description
$name
string

Fully qualified behavior name

Returns
bool

inherited public makeAssets ($type = null) : string | null

Inherited from AssetMaker

Outputs <link> and <script> tags to load assets previously added with addJs, addCss, & addRss method calls depending on the provided $type

Parameters
Property Description
$type
mixed
Returns
string | null

inherited public methodExists (string $name) : bool

Inherited from ExtendableTrait

Checks if a method exists, extension equivalent of method_exists()

Parameters
Property Description
$name
string
Returns
bool

inherited public orderAssets (array $assets) : array

Inherited from AssetMaker

Prioritize assets based on the given order.

Parameters
Property Description
$assets
array
Returns
array

inherited public property (string $name, string $default = null) : mixed

Inherited from PropertyContainer

Returns a defined property value or default if one is not set.

Parameters
Property Description
$name
string

The property name to look for.

$default
string

A default value to return if no name is found.

Returns
mixed

The property value or the default specified.

inherited public propertyExists (string $name) : bool

Inherited from ExtendableTrait

Checks if a property exists, extension equivalent of property_exists()

Parameters
Property Description
$name
string
Returns
bool

inherited public setProperties (array $properties) : void

Inherited from PropertyContainer

Sets multiple properties.

Parameters
Property Description
$properties
array
Returns
void

inherited public setProperty (string $name, mixed $value) : void

Inherited from PropertyContainer

Sets a property value

Parameters
Property Description
$name
string
$value
mixed
Returns
void

inherited public validateProperties (array $properties) : array

Inherited from PropertyContainer

Validates the properties against the defined properties of the class.

This method also sets default properties.

Parameters
Property Description
$properties
array

The supplied property values.

Returns
array

The validated property set, with defaults applied.

inherited protected addAsset (string $type, string $path, array $attributes) : void

Inherited from AssetMaker

Adds the provided asset to the internal asset collections

Parameters
Property Description
$type
string
$path
string
$attributes
array
Returns
void

inherited protected extendableAddLocalExtension (Closure $callback, $outerScope = null)

Inherited from Extendable

Adds local extensibility to the current instance.

This rebinds a given closure to the current instance, making it able to access protected and private methods. This makes any call using $this within the closure act on the extended class, not the class providing the extension.

An outer scope may be provided by providing a second parameter, which will then be passed through to the closure as its first parameter. If this is not given, the current instance will be provided as the first parameter.

Parameters
Property Description
$callback
Closure
$outerScope
mixed
Returns
mixed

inherited protected extendableIsAccessible (mixed $class, string $propertyName) : bool

Inherited from ExtendableTrait

Checks if a property is accessible, property equivalent of is_callable()

Parameters
Property Description
$class
mixed
$propertyName
string
Returns
bool

inherited protected extensionCallMethod (ReflectionClass $class, string $method, array $params)

Inherited from ExtendableTrait

Calls a method through reflection.

Parameters
Property Description
$class
ReflectionClass
$method
string
$params
array
Returns
mixed

inherited protected extensionExtractMethods (string $extensionName, object $extensionObject) : void

Inherited from ExtendableTrait

Extracts the available methods from a behavior and adds it to the list of callable methods.

Parameters
Property Description
$extensionName
string
$extensionObject
object
Returns
void

inherited protected extensionGetClassLoader () : Winter\Storm\Support\ClassLoader | null

Inherited from ExtendableTrait

Gets the class loader

Returns
Winter\Storm\Support\ClassLoader | null

inherited protected extensionGetParentClass ($instance = null) : ReflectionClass | false

Inherited from ExtendableTrait

Gets the parent class using reflection.

The parent class must either not be the Extendable class, or must not be using the ExtendableTrait trait, in order to prevent infinite loops.

Parameters
Property Description
$instance
mixed
Returns
ReflectionClass | false

inherited protected extensionMethodExists (ReflectionClass $class, string $methodName) : bool

Inherited from ExtendableTrait

Determines if the given class reflection contains the given method.

Parameters
Property Description
$class
ReflectionClass
$methodName
string
Returns
bool

inherited protected extensionNormalizeClassName (string $name) : string

Inherited from ExtendableTrait

Normalizes the provided extension name allowing for the ClassLoader to inject aliased classes

Parameters
Property Description
$name
string
Returns
string

inherited protected getAssetEntryBuildPath (array $asset) : string

Inherited from AssetMaker

Internal helper, attaches a build code to an asset path

Parameters
Property Description
$asset
array
Returns
string

inherited protected getAssetScheme (string $asset) : string

Inherited from AssetMaker

Internal helper, get asset scheme

Parameters
Property Description
$asset
string
Returns
string

inherited protected getLocalPath (string | null $relativePath) : string

Inherited from AssetMaker
Parameters
Property Description
$relativePath
string | null
Returns
string

inherited protected removeDuplicates () : void

Inherited from AssetMaker

Removes duplicate assets from the entire collection.

Returns
void

Extended by

Class Description
Resources

Resources component

SoftComponent
UnknownComponent
ViewBag

The view bag stores custom template properties.

Copyright © 2024 Winter CMS