Backend\Classes\BackendController

Source: ~/modules/backend/classes/BackendController.php

Extends:

  • Illuminate\Routing\Controller

This is the master controller for all back-end pages. All requests that are prefixed with the backend URI pattern are sent here, then the next URI segments are analysed and the request is routed to the relevant back-end controller.

For example, a request with the URL /backend/acme/blog/posts will look for the Posts controller inside the Acme.Blog plugin.

See also:

Public properties

public array $implement

Behaviors implemented by this controller.

public static string $action

Allows early access to page action.

public static array $params

Allows early access to page parameters.

Protected properties

protected boolean $cmsHandling

Flag to indicate that the CMS module is handling the current request

protected Backend\Classes\Controller $requestedController

Stores the requested controller so that the constructor is only run once

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.

Show inherited protected properties

Inherited protected properties

  • protected array $middleware - defined in Illuminate\Routing\Controller. The middleware registered on the controller.

Public methods

public void __construct()

Instantiate a new BackendController instance.

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 static void extend($callback)

Extend this object properties upon construction.

Parameters
  • $callback

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

public string run(string $url=NULL)

Finds and serves the requested backend controller. If the controller cannot be found, returns the Cms page with the URL /404. If the /404 page doesn't exist, returns the system 404 page.

Parameters
  • string $url - Specifies the requested page URL. If the parameter is omitted, the current URL used.

Show inherited public methods

Inherited public methods

  • public mixed __call(string $method, array $parameters) - defined in Illuminate\Routing\Controller. Handle calls to missing methods on the controller.
  • public Symfony\Component\HttpFoundation\Response callAction(string $method, array $parameters) - defined in Illuminate\Routing\Controller. Execute an action on the controller.
  • public array getMiddleware() - defined in Illuminate\Routing\Controller. Get the middleware assigned to the controller.
  • public Illuminate\Routing\ControllerMiddlewareOptions middleware(array|string|\Closure $middleware, array $options=array()) - defined in Illuminate\Routing\Controller. Register middleware on the controller.

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

protected ControllerBase findController(string $controller, string $action, string $inPath)

This method is used internally. Finds a backend controller with a callable action method.

Parameters
  • string $controller - Specifies a method name to execute.
  • string $action - Specifies a method name to execute.
  • string $inPath - Base path for class file location.

protected array|null getRequestedController(string $url)

Determines the controller and action to load in the backend via a provided URL.

If a suitable controller is found, this will return an array with the controller class name as a string, the action to call as a string and an array of parameters. If a suitable controller and action cannot be found, this method will return null.

Parameters
  • string $url - A URL to determine the requested controller and action for

protected static bool methodExcludedByOptions(string $method, array $options)

Determine if the given options exclude a particular method.

Parameters
  • string $method
  • array $options

protected string parseAction(string $actionName)

Process the action name, since dashes are not supported in PHP methods.

Parameters
  • string $actionName

protected Response passToCmsController(string $url)

Pass unhandled URLs to the CMS Controller, if it exists

Parameters
  • string $url