-
Docs
Backend
-
Behaviors
-
Classes
-
Controllers
-
Database
-
Seeds
-
-
Facades
-
FormWidgets
-
Helpers
-
Exception
- Backend
-
-
Models
-
ReportWidgets
-
Skins
-
Traits
-
Widgets
- ServiceProvider
-
-
Cms
-
Classes
- Asset
- AutoDatasource
- CmsCompoundObject
- CmsController
- CmsException
- CmsObject
- CmsObjectCollection
- CodeBase
- CodeParser
- ComponentBase
- ComponentHelpers
- ComponentManager
- ComponentPartial
- Content
- Controller
- Layout
- LayoutCode
- MediaLibrary
- MediaLibraryItem
- MediaViewHelper
- Meta
- ObjectMemoryCache
- Page
- PageCode
- Partial
- PartialCode
- PartialStack
- Router
- Theme
- ThemeManager
-
Components
-
Contracts
-
Controllers
-
Facades
-
FormWidgets
-
Helpers
-
Models
-
ReportWidgets
-
Traits
-
Twig
- ComponentNode
- ComponentTokenParser
- ContentNode
- ContentTokenParser
- DebugExtension
- DefaultNode
- DefaultTokenParser
- Extension
- FlashNode
- FlashTokenParser
- FrameworkNode
- FrameworkTokenParser
- Loader
- PageNode
- PageTokenParser
- PartialNode
- PartialTokenParser
- PlaceholderNode
- PlaceholderTokenParser
- PutNode
- PutTokenParser
- ScriptsNode
- ScriptsTokenParser
- StylesNode
- StylesTokenParser
-
Widgets
- ServiceProvider
-
-
System
-
Behaviors
-
Classes
-
Console
-
Controllers
-
Database
-
Helpers
-
Models
-
ReportWidgets
-
Traits
-
Twig
- ServiceProvider
-
-
Events
-
backend
-
ajax
-
filter
-
form
-
list
-
menu
-
page
-
user
-
-
cms
-
ajax
-
block
-
combiner
-
component
-
object
-
page
-
router
-
template
-
theme
-
-
halcyon
-
datasource
-
-
mailer
-
media
-
model
-
system
-
assets
-
console
-
mirror
-
theme
-
-
reportwidgets
-
settings
- extendConfigFile
-
-
translator
-
-
Library
-
Argon
-
Auth
-
Models
- AuthException
- Manager
-
-
Config
-
Cookie
-
Middleware
-
-
Database
-
Attach
-
Behaviors
-
Concerns
-
Connections
-
Connectors
-
Models
-
Relations
-
Schema
-
Traits
-
Updates
- README
- Builder
- Collection
- DatabaseServiceProvider
- DataFeed
- Dongle
- MemoryCache
- Model
- ModelBehavior
- ModelException
- NestedTreeScope
- Pivot
- QueryBuilder
- SortableScope
- TreeCollection
- Updater
-
-
Events
-
Exception
-
Extension
-
Filesystem
-
Flash
-
Foundation
-
Bootstrap
-
Console
-
Exception
-
Http
-
Middleware
- Kernel
-
-
Providers
- Application
- Maker
-
-
Halcyon
-
Datasource
-
Exception
-
Processors
-
Traits
- README
- Builder
- Collection
- HalcyonServiceProvider
- MemoryCacheManager
- MemoryRepository
- Model
-
-
Html
-
Mail
-
Network
-
Parse
-
Router
-
Scaffold
-
Support
-
Translation
-
- Documentation
- API
- Library
- Extension
- ExtendableTrait
October\Rain\Extension\ExtendableTrait
Source: ~/vendor/october/rain/src/Extension/ExtendableTrait.php
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.
Protected properties
protected array $extensionData
Class reflection information, including behaviors.
protected static array $extendableCallbacks
Used to extend the constructor of an extendable class. Eg:
Class::extend(function($obj) { })
protected static array $extendableStaticMethods
Collection of static methods used by behaviors.
protected static bool $extendableGuardProperties
Indicates if dynamic properties can be created.
Public methods
public void addDynamicMethod(string $dynamicName, callable $method, string $extension=NULL)
Programmatically adds a method to the extendable class
Parameters
- string $dynamicName
- callable $method
- string $extension
public void addDynamicProperty(string $dynamicName, string $value=NULL)
Programmatically adds a property to the extendable class
Parameters
- string $dynamicName
- string $value
public mixed asExtension(string $shortName)
Short hand for getClassExtension()
method, except takes the short
extension name, example:
$this->asExtension('FormController')
Parameters
- string $shortName
public static void clearExtendedClasses()
Clear the list of extended classes so they will be re-extended.
public void extendClassWith(string $extensionName)
Dynamically extend a class with a specified behavior
Parameters
- string $extensionName
public mixed extendableCall(string $name, array $params=NULL)
Magic method for __call()
Parameters
- string $name
- array $params
public static mixed extendableCallStatic(string $name, array $params=NULL)
Magic method for __callStatic()
Parameters
- string $name
- array $params
public void extendableConstruct()
This method should be called as part of the constructor.
public static void extendableExtendCallback(callable $callback)
Helper method for ::extend()
static method
Parameters
- callable $callback
public string extendableGet(string $name)
Magic method for __get()
Parameters
- string $name
public string extendableSet(string $name, string $value)
Magic method for __set()
Parameters
- string $name
- string $value
public mixed getClassExtension(string $name)
Returns a behavior object from an extendable class, example:
$this->getClassExtension('Backend.Behaviors.FormController')
Parameters
- string $name - Fully qualified behavior name
public array getClassMethods()
Get a list of class methods, extension equivalent of get_class_methods()
public array getDynamicProperties()
Returns all dynamic properties and their values
public boolean isClassExtendedWith(string $name)
Check if extendable class is extended with a behavior object
Parameters
- string $name - Fully qualified behavior name
public boolean methodExists(string $name)
Checks if a method exists, extension equivalent of method_exists()
Parameters
- string $name
public boolean propertyExists(string $name)
Checks if a property exists, extension equivalent of property_exists()
Parameters
- string $name
Protected methods
protected boolean extendableIsAccessible(mixed $class, string $propertyName)
Checks if a property is accessible, property equivalent of is_callable()
Parameters
- mixed $class
- string $propertyName
protected void extensionExtractMethods(string $extensionName, object $extensionObject)
Extracts the available methods from a behavior and adds it to the list of callable methods.
Parameters
- string $extensionName
- object $extensionObject