MainController
class MainController extends BaseController
Main Controller Class
Traits
Adds event related features to any class.
Verifies CSRF token Trait
Adds event related features to any class.
Extendable Trait Allows for "Private traits"
Properties
protected array | $extensionData | from ExtendableTrait | |
static protected array | $extendableCallbacks | from ExtendableTrait | |
static protected array | $extendableStaticMethods | from ExtendableTrait | |
static protected bool | $extendableGuardProperties | from ExtendableTrait | |
static protected ClassLoader | $extendableClassLoader | from ExtendableTrait | |
$implement | A list of controller behavours/traits to be implemented |
from BaseController | |
protected array | $emitterSingleEvents | from EventEmitter | |
protected array | $emitterEvents | from EventEmitter | |
protected array | $emitterEventSorted | from EventEmitter | |
protected string | $class | from BaseController | |
protected string | $action | from BaseController | |
protected array | $params | from BaseController | |
protected object | $fatalError | from BaseController | |
$hiddenActions | |||
protected array | $publicActions | from BaseController | |
protected int | $statusCode | from BaseController | |
array | $assetPath | from AssetMaker | |
$enableCsrfProtection | from VerifiesCsrfToken | ||
protected Theme | $theme | ||
protected Router | $router | ||
protected Loader | $loader | ||
protected Environment | $template | ||
protected LayoutCode | $layoutObj | ||
protected PageCode | $pageObj | ||
protected Layout | $layout | ||
protected Page | $page | ||
static protected MainController | $controller | ||
protected string | $pageContents | ||
array | $vars | ||
array | $components | ||
protected BaseComponent | $componentContext | ||
bool | $suppressView | ||
string | $bodyClass |
Methods
Helper method for ::extend() static method
Clear the list of extended classes so they will be re-extended.
Normalizes the provided extension name allowing for the ClassLoader to inject aliased classes
Dynamically extend a class with a specified behavior
Extracts the available methods from a behavior and adds it to the list of callable methods.
Programmatically adds a method to the extendable class
Programatically adds a property to the extendable class
Check if extendable class is extended with a behavior object
Returns a behavior object from an extendable class, example:
Short hand for getClassExtension() method, except takes the short extension name, example:
Checks if a method exists, extension equivalent of method_exists()
Get a list of class methods, extension equivalent of get_class_methods()
Checks if a property exists, extension equivalent of property_exists()
Checks if a property is accessible, property equivalent of is_callabe()
Magic method for __call()
Magic method for __callStatic()
Class constructor
Create a new event binding.
Create a new event binding that fires once only
Sort the listeners for a given event by priority.
Fire an event and call the listeners.
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.
Locates a file based on it's definition. If the file starts with a forward slash, it will be returned in context of the application public path, otherwise it will be returned in context of the asset path.
Determine if the cookie contents should be serialized.
No description
No description
Invokes the current page cycle without rendering the page, used by AJAX handler that may rely on the logic inside the action.
No description
Returns the AJAX handler for the current request, if available.
No description
No description
No description
No description
Returns an existing instance of the controller.
Returns the Layout object being processed by the controller.
Initializes the Template environment and loader.
No description
No description
Renders a requested page.
No description
Renders a requested content file.
Renders a requested component default partial.
Adds a component to the layout object
No description
Searches the layout components by an alias
Searches the layout components by an AJAX handler
Searches the layout and page components by a partial file
No description
No description
No description
No description
No description
No description
No description
No description
No description
No description
No description
No description
No description
No description
Details
in
ExtendableTrait at line 55
extendableConstruct()
Constructor.
in
ExtendableTrait at line 103
static void
extendableExtendCallback(callable $callback)
Helper method for ::extend() static method
in
ExtendableTrait at line 120
static void
clearExtendedClasses()
Clear the list of extended classes so they will be re-extended.
in
ExtendableTrait at line 131
protected string
extensionNormalizeClassName(string $name)
Normalizes the provided extension name allowing for the ClassLoader to inject aliased classes
in
ExtendableTrait at line 149
void|ExtendableTrait
extendClassWith(string $extensionName)
Dynamically extend a class with a specified behavior
in
ExtendableTrait at line 178
protected void
extensionExtractMethods(string $extensionName, object $extensionObject)
Extracts the available methods from a behavior and adds it to the list of callable methods.
in
ExtendableTrait at line 206
addDynamicMethod(string $dynamicName, callable $method, string $extension = null)
Programmatically adds a method to the extendable class
in
ExtendableTrait at line 225
addDynamicProperty(string $dynamicName, string $value = null)
Programatically adds a property to the extendable class
in
ExtendableTrait at line 249
bool
isClassExtendedWith(string $name)
Check if extendable class is extended with a behavior object
in
ExtendableTrait at line 265
mixed
getClassExtension(string $name)
Returns a behavior object from an extendable class, example:
$this->getClassExtension('Admin.Actions.FormController')
in
ExtendableTrait at line 280
mixed
asExtension(string $shortName)
Short hand for getClassExtension() method, except takes the short extension name, example:
$this->asExtension('FormController')
in
ExtendableTrait at line 301
bool
methodExists(string $name)
Checks if a method exists, extension equivalent of method_exists()
in
ExtendableTrait at line 313
array
getClassMethods()
Get a list of class methods, extension equivalent of get_class_methods()
in
ExtendableTrait at line 326
array
getDynamicProperties()
Returns all dynamic properties and their values
in
ExtendableTrait at line 344
bool
propertyExists(string $name)
Checks if a property exists, extension equivalent of property_exists()
in
ExtendableTrait at line 370
protected bool
extendableIsAccessible(mixed $class, string $propertyName)
Checks if a property is accessible, property equivalent of is_callabe()
in
ExtendableTrait at line 385
string
extendableGet(string $name)
Magic method for __get()
in
ExtendableTrait at line 410
string
extendableSet(string $name, string $value)
Magic method for __set()
in
ExtendableTrait at line 444
mixed
extendableCall(string $name, array $params = null)
Magic method for __call()
in
ExtendableTrait at line 483
static mixed
extendableCallStatic(string $name, array $params = null)
Magic method for __callStatic()
in
ExtendableTrait at line 552
protected ClassLoader|null
extensionGetClassLoader()
Gets the class loader
at line 141
__construct(null $theme = null)
Class constructor
in
Extendable at line 30
__get($name)
No description
in
Extendable at line 35
__set($name, $value)
No description
in
Extendable at line 40
__call($name, $params)
No description
in
Extendable at line 45
static
__callStatic($name, $params)
No description
in
Extendable at line 50
static
extend(callable $callback)
No description
in
EventEmitter at line 36
EventEmitter
bindEvent(string $event, callable $callback, int $priority = 0)
Create a new event binding.
in
EventEmitter at line 52
EventEmitter
bindEventOnce(string $event, callable $callback)
Create a new event binding that fires once only
in
EventEmitter at line 66
protected void
emitterEventSortEvents(string $eventName)
Sort the listeners for a given event by priority.
in
EventEmitter at line 84
EventEmitter
unbindEvent(string $event = null)
Destroys an event binding.
in
EventEmitter at line 124
string|array
fireEvent(string $event, array $params = [], bool $halt = false)
Fire an event and call the listeners.
in
EventEmitter at line 178
mixed
fireSystemEvent(string $event, array $params = [], bool $halt = true)
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('admin.form.myEvent', ['my value']);
Is equivalent to:
$this->fireEvent('form.myEvent', ['myvalue'], true);
Event::fire('admin.form.myEvent', [$this, 'myvalue'], true);
in
BaseController at line 73
getClass()
No description
in
BaseController at line 78
getAction()
No description
in
BaseController at line 83
checkAction($action)
No description
in
BaseController at line 100
setStatusCode($code)
No description
in
AssetMaker at line 15
flushAssets()
No description
in
AssetMaker at line 30
string
getAssetPath(string $fileName, string $assetPath = null)
Locates a file based on it's definition. If the file starts with a forward slash, it will be returned in context of the application public path, otherwise it will be returned in context of the asset path.
in
AssetMaker at line 55
addMeta($meta)
No description
in
AssetMaker at line 60
addJs($href, $attributes = null)
No description
in
AssetMaker at line 65
addCss($href, $attributes = null)
No description
in
VerifiesCsrfToken at line 20
protected
makeXsrfCookie()
No description
in
VerifiesCsrfToken at line 37
protected
verifyCsrfToken()
No description
in
VerifiesCsrfToken at line 58
protected string
getCsrfTokenFromRequest()
Get the CSRF token from the request.
in
VerifiesCsrfToken at line 79
static bool
serialized()
Determine if the cookie contents should be serialized.
at line 167
remap($url = null)
No description
at line 215
runPage($page)
No description
at line 290
pageCycle()
Invokes the current page cycle without rendering the page, used by AJAX handler that may rely on the logic inside the action.
at line 295
protected
execPageCycle()
No description
at line 345
string
getHandler()
Returns the AJAX handler for the current request, if available.
at line 356
protected
processHandlers()
No description
at line 410
protected
runHandler($handler)
No description
at line 443
protected
validateHandler($handler)
No description
at line 450
protected
validateHandlerPartials()
No description
at line 475
static MainController
getController()
Returns an existing instance of the controller.
If the controller doesn't exists, returns null.
at line 484
LayoutCode
getLayoutObj()
Returns the Layout object being processed by the controller.
at line 493
Theme
getTheme()
Returns the current theme.
at line 502
Router
getRouter()
Returns the routing object.
at line 513
Page
getPage()
Returns the template page object being processed by the controller.
The object is not available on the early stages of the controller initialization.
at line 526
protected void
initTemplateEnvironment()
Initializes the Template environment and loader.
at line 547
initTemplateObjects()
No description
at line 556
protected
initializeComponents()
No description
at line 586
renderPage()
Renders a requested page.
The framework uses this method internally.
at line 597
renderPartial($name, array $params = [], $throwException = true)
No description
at line 649
string
renderContent(string $name, array $params = [])
Renders a requested content file.
at line 694
mixed
renderComponent(string $name, array $params = [], bool $throwException = true)
Renders a requested component default partial.
This method is used internally.
at line 731
BaseComponent
addComponent(mixed $name, string $alias, array $properties = [], bool $addToLayout = false)
Adds a component to the layout object
at line 748
hasComponent($alias)
No description
at line 766
BaseComponent
findComponentByAlias($alias)
Searches the layout components by an alias
at line 784
BaseComponent
findComponentByHandler(string $handler)
Searches the layout components by an AJAX handler
at line 802
BaseComponent
findComponentByPartial(string $partial)
Searches the layout and page components by a partial file
at line 819
setComponentContext(BaseComponent $component = null)
No description
at line 824
protected
loadComponentPartial($name, $throwException = true)
No description
at line 866
protected
loadPartial($name, $throwException = true)
No description
at line 881
url($path = null, $params = [])
No description
at line 892
pageUrl($path = null, $params = [])
No description
at line 905
currentPageUrl($params = [])
No description
at line 912
themeUrl($url = null)
No description
at line 921
param($name, $default = null)
No description
at line 926
refresh()
No description
at line 931
redirect($path, $status = 302, $headers = [], $secure = null)
No description
at line 936
redirectGuest($path, $status = 302, $headers = [], $secure = null)
No description
at line 941
redirectIntended($path, $status = 302, $headers = [], $secure = null)
No description
at line 946
redirectBack()
No description
at line 951
protected
handleException($message, $throwException)
No description
at line 959
protected
bindLocationRouteParameter($params)
No description