ComponentPartial
The CMS component partial class. These objects are read-only.
class Cms\Classes\ComponentPartial
extends Winter\Storm\Extension\Extendable
implements
Cms\Contracts\CmsObject
Extends
Class | Description |
---|---|
Extendable
|
Extension class |
Traits
Trait | Description |
---|---|
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. |
Properties
public $content : string
Partial content.
public $fileName : string
The component partial file name.
public $mtime : string
Last modified time.
protected
$allowedExtensions
:
array
= ["htm"]
Allowable file extensions.
protected $component : Cms\Classes\ComponentBase
A reference to the CMS component containing the object.
protected
$defaultExtension
:
string
= "htm"
Default file extension.
protected
$maxNesting
:
int
= 2
The maximum allowed path nesting level. The default value is 2, meaning that files can only exist in the root directory, or in a subdirectory. Set to null if any level is allowed.
inherited
public
$implement
:
string
|
array
|
null
= null
Extensions implemented by this class.
inherited
protected
static
$extendableCallbacks
:
array
= []
Used to extend the constructor of an extendable class. Eg:
Class::extend(function($obj) { })
inherited
protected
static
$extendableClassLoader
:
ClassLoader
|
null
= null
Class loader instance.
inherited
protected
$extendableConstructed
:
bool
= false
Indicates if the extendable constructor has completed.
inherited
protected
static
$extendableStaticMethods
:
array
= []
Collection of static methods used by behaviors.
inherited
protected
$extensionData
:
array
= {"extensions":[],"methods":[],"dynamicMethods":[],"dynamicProperties":[]}
Class reflection information, including behaviors.
inherited
protected
$localCallbacks
:
array
= []
This stores any locally-scoped callbacks fired before the extendable constructor had completed.
Methods
public __construct (Cms\Classes\ComponentBase $component)
Creates an instance of the object and associates it with a CMS component.
Property | Type | Description |
---|---|---|
$component | Cms\Classes\ComponentBase |
Cms\Classes\ComponentBase
Specifies the component the object belongs to. |
public static check (Cms\Classes\ComponentBase $component, string $fileName) : bool
Returns true if the specific component contains a matching partial.
Property | Type | Description |
---|---|---|
$component | Cms\Classes\ComponentBase |
Cms\Classes\ComponentBase
Specifies a component the file belongs to. |
$fileName | string |
string
Specifies the file name to check. |
public find (string $fileName) : mixed | static
Find a single template by its file name.
Property | Type | Description |
---|---|---|
$fileName | string |
string
|
public getBaseFileName () : string
Returns the file name without the extension.
public getContent () : string
Returns the file content.
public getDefaultExtension () : string
Returns the default extension used by this template.
public getFileName () : string
Returns the file name.
public
getFilePath (string $fileName = null
)
: string
Returns the absolute file path.
Property | Type | Description |
---|---|---|
$fileName | string |
string
Specifies the file name to return the path to. |
public getTwigCacheKey () : string
Returns the key used by the Twig cache.
public getTwigContent () : string
Returns the Twig content string.
public static load (Cms\Classes\ComponentBase $component, string $fileName) : mixed
Loads the object from a file.
This method is used in the CMS back-end. It doesn't use any caching.
Property | Type | Description |
---|---|---|
$component | Cms\Classes\ComponentBase |
Specifies the component the object belongs to. |
$fileName | string |
string
Specifies the file name, with the extension. The file name can contain only alphanumeric symbols, dashes and dots. |
Returns a CMS object instance or null if the object wasn't found.
public static loadCached (Cms\Classes\ComponentBase $component, string $fileName) : mixed
There is not much point caching a component partial, so this behavior reverts to a regular load call.
Property | Type | Description |
---|---|---|
$component | Cms\Classes\ComponentBase | |
$fileName | string |
string
|
public static loadOverrideCached (Cms\Classes\Theme $theme, Cms\Classes\ComponentBase $component, string $fileName) : mixed
Checks if a partial override exists in the supplied theme and returns it.
Since the beginning of time, Winter inconsistently checked for overrides using the component alias exactly, resulting in a folder with uppercase characters, subsequently this method checks for both variants.
Property | Type | Description |
---|---|---|
$theme | Cms\Classes\Theme | |
$component | Cms\Classes\ComponentBase | |
$fileName | string |
string
|
protected validateFileName (string $fileName) : string
Checks the supplied file name for validity.
Property | Type | Description |
---|---|---|
$fileName | string |
string
|
inherited public __call ($name, $params)
Property | Type | Description |
---|---|---|
$name | mixed |
mixed
|
$params | mixed |
mixed
|
inherited public static __callStatic ($name, $params)
Property | Type | Description |
---|---|---|
$name | mixed |
mixed
|
$params | mixed |
mixed
|
inherited public __get ($name)
Property | Type | Description |
---|---|---|
$name | mixed |
mixed
|
inherited public __set ($name, $value)
Property | Type | Description |
---|---|---|
$name | mixed |
mixed
|
$value | mixed |
mixed
|
inherited
public
addDynamicMethod (string $dynamicName, callable $method, string $extension = null
)
Programmatically adds a method to the extendable class
Property | Type | Description |
---|---|---|
$dynamicName | string |
string
|
$method | callable |
callable
|
$extension | string |
string
|
inherited
public
addDynamicProperty (string $dynamicName, mixed $value = null
)
: void
Programmatically adds a property to the extendable class
Property | Type | Description |
---|---|---|
$dynamicName | string |
string
The name of the property to add |
$value | mixed |
mixed
The value of the property |
inherited public asExtension (string $shortName) : mixed
Short hand for getClassExtension()
method, except takes the short
extension name, example:
$this->asExtension('FormController')
Property | Type | Description |
---|---|---|
$shortName | string |
string
|
inherited public static clearExtendedClasses () : void
Clear the list of extended classes so they will be re-extended.
inherited public extendClassWith (string $extensionName) : void
Dynamically extend a class with a specified behavior
Property | Type | Description |
---|---|---|
$extensionName | string |
string
|
inherited
public
static
extendableAddExtension (callable $callback, boolean $scoped = false
, $outerScope = null
)
: void
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.
Property | Type | Description |
---|---|---|
$callback | callable |
callable
|
$scoped | boolean |
boolean
|
$outerScope | mixed |
mixed
|
inherited
public
extendableCall (string $name, array $params = null
)
: mixed
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
Property | Type | Description |
---|---|---|
$name | string |
string
|
$params | array |
array
|
inherited
public
static
extendableCallStatic (string $name, array $params = null
)
: mixed
Magic method for __callStatic()
Property | Type | Description |
---|---|---|
$name | string |
string
|
$params | array |
array
|
inherited public extendableConstruct ()
This method should be called as part of the constructor.
inherited
public
static
extendableExtendCallback (callable $callback, boolean $scoped = false
, $outerScope = null
)
: void
Helper method for ::extend()
static method.
Property | Type | Description |
---|---|---|
$callback | callable |
callable
|
$scoped | boolean |
boolean
|
$outerScope | mixed |
mixed
|
inherited public extendableGet (string $name) : mixed | null
Magic method for __get()
Property | Type | Description |
---|---|---|
$name | string |
string
|
inherited public extendableSet (string $name, mixed $value) : void
Magic method for __set()
Property | Type | Description |
---|---|---|
$name | string |
string
|
$value | mixed |
mixed
|
inherited public getClassExtension (string $name) : mixed
Returns a behavior object from an extendable class, example:
$this->getClassExtension('Backend.Behaviors.FormController')
Property | Type | Description |
---|---|---|
$name | string |
string
Fully qualified behavior name |
inherited public getClassMethods () : array
Get a list of class methods, extension equivalent of get_class_methods()
inherited public getDynamicProperties () : array
Returns all dynamic properties and their values
['property' => 'value']
inherited public isClassExtendedWith (string $name) : bool
Check if extendable class is extended with a behavior object
Property | Type | Description |
---|---|---|
$name | string |
string
Fully qualified behavior name |
inherited public methodExists (string $name) : bool
Checks if a method exists, extension equivalent of method_exists()
Property | Type | Description |
---|---|---|
$name | string |
string
|
inherited public propertyExists (string $name) : bool
Checks if a property exists, extension equivalent of property_exists()
Property | Type | Description |
---|---|---|
$name | string |
string
|
inherited
protected
extendableAddLocalExtension (Closure $callback, $outerScope = null
)
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.
Property | Type | Description |
---|---|---|
$callback | Closure |
Closure
|
$outerScope | mixed |
mixed
|
inherited protected extendableIsAccessible (mixed $class, string $propertyName) : bool
Checks if a property is accessible, property equivalent of is_callable()
Property | Type | Description |
---|---|---|
$class | mixed |
mixed
|
$propertyName | string |
string
|
inherited protected extensionCallMethod (ReflectionClass $class, string $method, array $params)
Calls a method through reflection.
Property | Type | Description |
---|---|---|
$class | ReflectionClass |
ReflectionClass
|
$method | string |
string
|
$params | array |
array
|
inherited protected extensionExtractMethods (string $extensionName, object $extensionObject) : void
Extracts the available methods from a behavior and adds it to the list of callable methods.
Property | Type | Description |
---|---|---|
$extensionName | string |
string
|
$extensionObject | object |
object
|
inherited protected extensionGetClassLoader () : Winter\Storm\Support\ClassLoader | null
Gets the class loader
inherited
protected
extensionGetParentClass ($instance = null
)
: ReflectionClass | false
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.
Property | Type | Description |
---|---|---|
$instance | mixed |
mixed
|
inherited protected extensionMethodExists (ReflectionClass $class, string $methodName) : bool
Determines if the given class reflection contains the given method.
Property | Type | Description |
---|---|---|
$class | ReflectionClass |
ReflectionClass
|
$methodName | string |
string
|
inherited protected extensionNormalizeClassName (string $name) : string
Normalizes the provided extension name allowing for the ClassLoader to inject aliased classes
Property | Type | Description |
---|---|---|
$name | string |
string
|