Backend\Classes\Controller

Overview

Controller is a backend base controller class used by all Backend controllers

Extends

Public Properties

public object $widget

widget is a collection of WidgetBase classes used on this page.

public bool $suppressView

suppressView prevents the automatic view display.

public string $pageTitle

public mixed $pageSize

pageSize defines the maximum page size

public string $pageTitleTemplate

public string $bodyClass

bodyClass property used for customizing the layout on a controller basis.

public bool $turboVisitControl

turboVisitControl for the AJAX framework, supported values: reload, disable.

public array $hiddenActions

hiddenActions are methods that cannot be called as actions.

public array $vars

vars is a list of variables to pass to the page

public string $layout

layout to use for the view

public bool $suppressLayout

suppressLayout prevents the use of a layout

public string $assetPath

assetPath specifies the relative path to the asset directory.

public string $assetUrlPath

assetUrlPath specifies the public path to the asset directory.

Show inherited public properties

Inherited Public Properties

Protected Properties

protected object $user

user reference to administrator.

protected array $params

params used by the router.

protected string $action

action being called in the page

protected string $actionView

actionView to render, defaults to action name

protected array $publicActions

publicActions available without authentication.

protected array $requiredPermissions

requiredPermissions to view this page.

protected array $guarded

guarded methods that cannot be called as actions.

protected string|array $viewPath

viewPath specifies a path to the views directory

protected string $layoutPath

layoutPath specifies a path to the layout directory

protected array $viewPathGuessCache

viewPathGuessCache remembers path guesses for performance.

protected array $assets

Collection of assets to display in the layout.

protected array $assetBundles

Collection of combined and prioritized assets.

protected string $assetDefaults

assetDefaults is the default attributes for assets.

protected string $configPath

configPath specifies a path to the config directory.

protected array $emitterSingleEventCollection

emitterSingleEventCollection of events to be fired once only

protected array $emitterEventCollection

emitterEventCollection of all registered events

protected array $emitterEventSorted

emitterEventSorted collection

protected int $statusCode

statusCode for the response

protected mixed $responseOverride

responseOverride for the standard controller response.

protected Symfony\Component\HttpFoundation\ResponseHeaderBag $responseHeaderBag

protected array $responseBrowserEvents

responseBrowserEvents for the AJAX framework.

protected DependencyResolver $dependencyResolver

dependencyResolver for AJAX handlers and controller actions.

protected array $vueComponents

vueComponents contains Vue component classes

protected string|null $fatalError

fatalError stores the object used for a fatal error.

Show inherited protected properties

Inherited Protected Properties


Public Methods

public __construct()

public __construct(): void

__construct the controller.

public actionExists()

public actionExists(string $name, bool $internal = false): bool 

actionExists is used internally to determines whether an action with the specified name exists.

  • Action must be a class public method.
  • Action name can not be prefixed with the underscore character.
  • Action name must be lowercase.
  • Action must not appear in hiddenActions.

public actionUrl()

public actionUrl($action = null, $path = null): void

actionUrl returns a URL for this controller and supplied action.

public addCss()

public addCss($name, $attributes = []): void

addCss includes a StyleSheet asset to the asset list

public addCssBundle()

public addCssBundle($name, $attributes = []): void

addCssBundle includes a CSS asset to the bundled combiner pipeline

public addJs()

public addJs($name, $attributes = []): void

addJs includes a JavaScript asset to the asset list

public addJsBundle()

public addJsBundle($name, $attributes = []): void

addJsBundle includes a JS asset to the bundled combiner pipeline

public addRss()

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

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

public addViewPath()

public addViewPath(string|array $path, $append = false): void 

addViewPath prepends a path on the available view path locations

public beforeDisplay()

public beforeDisplay(): void

beforeDisplay is a method to override in your controller as a way to execute logic before each action executes. It is preferred over placing logic in the constructor

public bindEvent()

public bindEvent($event, $callback, $priority = 0): void 

bindEvent creates a new event binding

public bindEventOnce()

public bindEventOnce($event, $callback, $priority = 0): void 

bindEventOnce creates a new event binding that fires once only

public combineAssets()

public combineAssets($assets, $localPath = ''): string 

combineAssets runs asset paths through the Asset Combiner

public dispatchBrowserEvent()

public dispatchBrowserEvent($event, $data = null): void

dispatchBrowserEvent queues a browser event

public fireEvent()

public fireEvent(
    string $event,
    array $params = [],
    boolean $halt = false
): array 

fireEvent and call the listeners

public fireSystemEvent()

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

fireSystemEvent 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);

public fireViewEvent()

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

fireViewEvent is a special event function used for extending within view files, allowing HTML to be injected multiple times.

For example:

<?= $this->fireViewEvent('backend.auth.extendSigninView') ?>

public flushAssets()

public flushAssets(): void 

flushAssets disables the use, and subsequent 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.

public getAction()

public getAction(): void

getAction returns the action name

public getAjaxHandler()

public getAjaxHandler(): string 

getAjaxHandler returns the AJAX handler for the current request, if available.

public getAssetPath()

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

getAssetPath 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.

public getAssetPaths()

public getAssetPaths(): array 

getAssetPaths returns an array of all registered asset paths.

public getBrowserEvents()

public getBrowserEvents(): array 

getBrowserEvents returns the queued browser events

public getConfigPath()

public getConfigPath(
    string $fileName,
    mixed $configPath = null
): string 

getConfigPath locates a file based on it's definition. If the file starts with the ~ symbol it will be returned in context of the application base path, otherwise it will be returned in context of the config path.

public getFatalError()

public getFatalError(): void

getFatalError returns error message

public getId()

public getId($suffix = null): void

getId returns a unique ID for the controller and route. Useful in creating HTML markup.

public getParams()

public getParams(): void

getParams returns the action parameters

public getPublicActions()

public getPublicActions(): void

getPublicActions returns the controllers public actions

public getResponseHeaders()

public getResponseHeaders(

): Symfony\Component\HttpFoundation\ResponseHeaderBag|null 

getResponseHeaders as a response header bag

public getStatusCode()

public getStatusCode(): int 

getStatusCode returns the status code for the current web response.

public getViewPath()

public getViewPath(string $fileName, mixed $viewPath = null): string 

getViewPath locates a file based on its definition. The file name can be prefixed with a symbol (~|$) to return in context of the application or plugin base path, otherwise it will be returned in context of this object view path.

public getViewPaths()

public getViewPaths(): array 

getViewPaths returns the active view path locations

public getWidget()

public getWidget($name): void

public guessConfigPath()

public guessConfigPath(string $suffix = ''): string 

guessConfigPath guesses the package path for the called class.

public guessConfigPathFrom()

public guessConfigPathFrom(string $class, string $suffix = ''): string 

guessConfigPathFrom guesses the package path from a specified class.

public guessViewPath()

public guessViewPath(
    string $suffix = '',
    bool $isPublic = false
): string 

guessViewPath guesses the package path for the called class

public guessViewPathFrom()

public guessViewPathFrom(
    string $class,
    string $suffix = '',
    bool $isPublic = false
): string 

guessViewPathFrom guesses the package path from a specified class, including an optional suffix to attach at the end, and the option to return a public path instead of a local one.

public handleError()

public handleError($exception): void

handleError sets standard page variables in the case of a controller error.

public hasAssetsDefined()

public hasAssetsDefined(): bool 

hasAssetsDefined returns true if assets any have been added

public hasFatalError()

public hasFatalError(): void

hasFatalError returns true if a fatal error has been set.

public isBackendHintHidden()

public isBackendHintHidden(string $name): bool 

isBackendHintHidden checks if a hint has been hidden by the user.

public isPublicAction()

public isPublicAction($action): bool 

isPublicAction returns true if the current action is public

public makeAssets()

public makeAssets(string $type = null): string 

makeAssets outputs <link> and <script> tags to load assets previously added with addJs and addCss method calls

public makeConfig()

public makeConfig(
    mixed $configFile = [],
    array $requiredConfig = []
): object 

makeConfig reads the contents of the supplied file and applies it to this object.

public makeConfigFromArray()

public makeConfigFromArray(array $configArray = []): stdClass 

makeConfigFromArray makes a config object from an array, making the first level keys properties of a new object.

public makeFileContents()

public makeFileContents(
    string $filePath,
    array $extraParams = []
): string 

makeFileContents includes a file path using output buffering

public makeFormWidget()

public makeFormWidget(
    string $class,
    mixed $fieldConfig = [],
    array $widgetConfig = []
): Backend\Classes\FormWidgetBase 

makeFormWidget object with the supplied form field and widget configuration.

public makeHintPartial()

public makeHintPartial(
    string $name,
    string $partial = null,
    array $params = []
): string 

makeHintPartial renders a hint partial, used for displaying informative information that can be hidden by the user. If you don't want to render a partial, you can supply content via the 'content' key of $params.

public makeLayout()

public makeLayout(
    string $name = null,
    array $params = [],
    bool $throwException = true
): mixed 

makeLayout renders a layout

public makeLayoutPartial()

public makeLayoutPartial(string $partial, array $params = []): string 

makeLayoutPartial renders a layout partial

public makePartial()

public makePartial(
    string $partial,
    array $params = [],
    bool $throwException = true
): mixed 

makePartial renders a partial file contents located in the views folder

public makeResponse()

public makeResponse(mixed $contents): mixed 

makeResponse prepares a response that considers overrides and custom responses.

public makeView()

public makeView(string $view): string 

makeView loads a view with the name specified. Applies layout if its name is provided by the parent object. The view file must be situated in the views directory, and has the extension "htm" or "php"

public makeViewContent()

public makeViewContent(
    string $contents,
    string $layout = null
): string 

makeViewContent renders supplied contents inside a layout

public makeWidget()

public makeWidget(
    string $class,
    array $widgetConfig = []
): Backend\Classes\WidgetBase 

makeWidget object with the supplied configuration file.

public mergeConfig()

public mergeConfig(mixed $configA, mixed $configB): stdClass 

mergeConfig merges two configuration sources, either prepared or not, and returns them as a single configuration object.

public onHideBackendHint()

public onHideBackendHint(): void 

onHideBackendHint ajax handler to hide a backend hint, once hidden the partial will no longer display for the user.

public outputVueComponentTemplates()

public outputVueComponentTemplates(): void

public pageAction()

public pageAction(): void

pageAction invokes the current controller action without rendering a view.

public registerDefaultVueComponents()

public registerDefaultVueComponents(): void

public registerVueComponent()

public registerVueComponent(string $className): void

registerVueComponent to be loaded when the action view renders.

public run()

public run(string $action = null, array $params = []): mixed 

run executes the controller action

public setResponse()

public setResponse(mixed $response): void 

setResponse for the current page request cycle, this value takes priority over the standard response prepared by the controller.

public setResponseCookie()

public setResponseCookie(
    Symfony\Component\HttpFoundation\Cookie|mixed $cookie
): void 

setResponseCookie adds a cookie to the response.

public setResponseHeader()

public setResponseHeader(
    string $key,
    array|string $values,
    bool $replace = true
): void 

setResponseHeader value

public setStatusCode()

public setStatusCode(int $code): void 

Sets the status code for the current web response.

public unbindEvent()

public unbindEvent($event = null): void 

unbindEvent destroys an event binding

Show inherited public methods

Inherited Public Methods

Protected Methods

protected combineBundledAssets()

protected combineBundledAssets($type): array 

combineBundledAssets spins over every bundle definition and combines them to an asset

protected emitterEventSortEvents()

protected emitterEventSortEvents($eventName, $combined = []): array 

emitterEventSortEvents sorts the listeners for a given event by priority

protected execAjaxHandlers()

protected execAjaxHandlers(): void

execAjaxHandlers is used internally and invokes a controller event handler and loads the supplied partials.

protected execPageAction()

protected execPageAction(string $actionName, array $parameters): void

This method is used internally. Invokes the controller action and loads the corresponding view.

protected execPostbackHandler()

protected execPostbackHandler(): void

execPostbackHandler is used internally to execute a postback version of an AJAX handler.

protected getAssetEntryBuildPath()

protected getAssetEntryBuildPath(array $asset): string 

Internal helper, attaches a build code to an asset path

protected getAssetScheme()

protected getAssetScheme($asset): string 

getAssetScheme is an internal helper to get the asset scheme.

protected getConfigValueFrom()

protected getConfigValueFrom($configObj, $name = null, $default = null): void

getConfigValueFrom will apply the config getter convention

protected getLocalPath()

protected getLocalPath($relativePath): string 

getLocalPath converts a relative path to a local path

protected handleViewException()

protected handleViewException($e, $obLevel): void 

handleViewException handles a view exception

protected isVueComponentRegistered()

protected isVueComponentRegistered($className): void

protected makeCallMethod()

protected makeCallMethod($instance, $method, $parameters = []): void

makeCallMethod will prepare method args with DI and call the method

protected makeVueComponent()

protected makeVueComponent($className): void

protected makeXsrfCookie()

protected makeXsrfCookie(): Symfony\Component\HttpFoundation\Cookie 

makeXsrfCookie adds anti-CSRF cookie. Adds a cookie with a token for CSRF checks to the response.

protected processAssetAttributes()

protected processAssetAttributes($attributes): void

protected removeDuplicateAssets()

protected removeDuplicateAssets(): void

removeDuplicateAssets removes duplicate and global assets from the entire collection

protected renderAssetAttributes()

protected renderAssetAttributes($type, $asset): string 

renderAssetAttributes takes an asset definition and returns the necessary HTML output

protected runAjaxHandler()

protected runAjaxHandler($handler): bool 

runAjaxHandler tries to find and run an AJAX handler in the page action. The method stops as soon as the handler is found. Returns true if the handler was found. Returns false otherwise.

protected runAjaxHandlerForWidget()

protected runAjaxHandlerForWidget($widget, $handler): mixed 

runAjaxHandlerForWidget is specific code for executing an AJAX handler for a widget. This will append the widget view paths to the controller and merge the vars.

protected verifyCsrfToken()

protected verifyCsrfToken(): bool 

verifyCsrfToken checks if the request requires verification first (not GET, HEAD, OPTIONS) and then the request data / headers for a valid CSRF token. Returns false if a valid token is not found. Override this method to disable the check.

protected verifyForceSecure()

protected verifyForceSecure(): bool 

verifyForceSecure checks if the back-end should force a secure protocol (HTTPS) enabled by config.

Show inherited protected methods

Inherited Protected Methods