PHP Class FOF30\Controller\Controller

A generic MVC controller implementation
Afficher le fichier Open project: akeeba/fof Class Usage Examples

Protected Properties

Свойство Type Description
$autoRouting integer 0 = never 1 = frontend only 2 = backend only 3 = always
$cacheableTasks array The tasks for which caching should be enabled by default
$config array A cached copy of the class configuration parameter passed during initialisation
$container FOF30\Container\Container The container attached to this Controller
$csrfProtection integer 0 Disabled; no token checks are performed 1 Enabled; token checks are always performed 2 Only on HTML requests and backend; token checks are always performed in the back-end and in the front-end only when format is 'html' 3 Only on back-end; token checks are performed only in the back-end
$doTask string The mapped task that was performed.
$instance Controller Instance container.
$layout string The current layout; you can override it in the configuration
$message string Redirect message.
$messageType string Redirect message type.
$methods array Array of class methods
$modelInstances array[Model] An array of Model instances known to this Controller
$modelName string Overrides the name of the view's default model
$name array The name of the controller
$paths array The set of search directories for resources (views).
$redirect string URL for redirection.
$task string Current or most recently performed task.
$taskMap array Array of class methods to call for a given task.
$taskPrivileges array You can use the notation '@task' which means 'apply the same privileges as "task"'. If you create a reference back to yourself (e.g. 'mytask' => array('@mytask')) it will return TRUE.
$view string The current view name; you can override it in the configuration
$viewInstances array[View] An array of View instances known to this Controller
$viewName string Overrides the name of the view's default view

Méthodes publiques

Méthode Description
__construct ( Container $container, array $config = [] ) : Controller Public constructor of the Controller class. You can pass the following variables in the $config array: name string The name of the Controller. Default: auto detect from the class name default_task string The task to use when none is specified. Default: main autoRouting int See the autoRouting property csrfProtection int See the csrfProtection property viewName string The view name. Default: the same as the controller name modelName string The model name. Default: the same as the controller name viewConfig array The configuration overrides for the View.
__get ( string $name ) : mixed | null Magic get method. Handles magic properties: $this->input mapped to $this->container->input
display ( boolean $cachable = false, boolean $urlparams = false, string $tpl = null ) : void Default task. Assigns a model to the view and asks the view to render itself.
execute ( string $task ) : null | boolean Executes a given controller task. The onBefore and onAfter methods are called automatically if they exist.
getModel ( string $name = null, array $config = [] ) : Model Returns a named Model object
getName ( ) : string Method to get the controller name
getTask ( ) : string Get the last task that is being performed or was most recently performed.
getTasks ( ) : array Gets the available tasks in the controller.
getView ( string $name = null, array $config = [] ) : View Returns a named View object
hasRedirect ( ) : boolean Returns true if there is a redirect set in the controller
main ( ) Alias to the display() task
redirect ( ) : boolean Redirects the browser or returns false if no redirect is set.
registerDefaultTask ( string $method ) : Controller Register the default task to perform if a mapping is not found.
registerTask ( string $task, string $method ) : Controller Register (map) a task to a method in the class.
setMessage ( string $text, string $type = 'message' ) : string Sets the internal message that is passed with a redirect
setModel ( string $modelName, Model &$model ) : void Pushes a named model to the Controller
setModelName ( string $modelName ) : void Set the name of the model to be used by this Controller
setRedirect ( string $url, string $msg = null, string $type = null ) : Controller Set a URL for browser redirection.
setView ( string $viewName, View &$view ) : void Pushes a named view to the Controller
setViewName ( string $viewName ) : void Set the name of the view to be used by this Controller
unregisterTask ( string $task ) : Controller Unregister (unmap) a task in the class.

Méthodes protégées

Méthode Description
checkACL ( string $area ) : boolean Checks if the current user has enough privileges for the requested ACL area.
csrfProtection ( ) : boolean Provides CSRF protection through the forced use of a secure token. If the token doesn't match the one in the session we return false.
getACLRuleFor ( string $area, array $oldAreas = [] ) : mixed Resolves @task and &callback notations for ACL privileges
triggerEvent ( string $event, array $arguments = [] ) : boolean Triggers an object-specific event. The event runs both locally –if a suitable method exists– and through the Joomla! plugin system. A true/false return value is expected. The first false return cancels the event.

Method Details

__construct() public méthode

modelConfig array The configuration overrides for the Model.
public __construct ( Container $container, array $config = [] ) : Controller
$container FOF30\Container\Container The application container
$config array The configuration array
Résultat Controller

__get() public méthode

Magic get method. Handles magic properties: $this->input mapped to $this->container->input
public __get ( string $name ) : mixed | null
$name string The property to fetch
Résultat mixed | null

checkACL() protected méthode

Checks if the current user has enough privileges for the requested ACL area.
protected checkACL ( string $area ) : boolean
$area string The ACL area, e.g. core.manage.
Résultat boolean True if the user has the ACL privilege specified

csrfProtection() protected méthode

Provides CSRF protection through the forced use of a secure token. If the token doesn't match the one in the session we return false.
protected csrfProtection ( ) : boolean
Résultat boolean

display() public méthode

YOU MUST NOT USE THIS TASK DIRECTLY IN A URL. It is supposed to be used ONLY inside your code. In the URL, use task=browse instead.
public display ( boolean $cachable = false, boolean $urlparams = false, string $tpl = null ) : void
$cachable boolean Is this view cacheable?
$urlparams boolean Add your safe URL parameters (see further down in the code)
$tpl string The name of the template file to parse
Résultat void

execute() public méthode

Executes a given controller task. The onBefore and onAfter methods are called automatically if they exist.
public execute ( string $task ) : null | boolean
$task string The task to execute, e.g. "browse"
Résultat null | boolean False on execution failure

getACLRuleFor() protected méthode

Resolves @task and &callback notations for ACL privileges
protected getACLRuleFor ( string $area, array $oldAreas = [] ) : mixed
$area string The task notation to resolve
$oldAreas array Areas we've already been redirected from, used to detect circular references
Résultat mixed The resolved ACL privilege

getModel() public méthode

Returns a named Model object
public getModel ( string $name = null, array $config = [] ) : Model
$name string The Model name. If null we'll use the modelName variable or, if it's empty, the same name as the Controller
$config array Configuration parameters to the Model. If skipped we will use $this->config
Résultat FOF30\Model\Model The instance of the Model known to this Controller

getName() public méthode

The controller name is set by default parsed using the classname, or it can be set by passing a $config['name'] in the class constructor
public getName ( ) : string
Résultat string The name of the controller

getTask() public méthode

Get the last task that is being performed or was most recently performed.
public getTask ( ) : string
Résultat string The task that is being performed or was most recently performed.

getTasks() public méthode

Gets the available tasks in the controller.
public getTasks ( ) : array
Résultat array Array[i] of task names.

getView() public méthode

Returns a named View object
public getView ( string $name = null, array $config = [] ) : View
$name string The Model name. If null we'll use the modelName variable or, if it's empty, the same name as the Controller
$config array Configuration parameters to the Model. If skipped we will use $this->config
Résultat FOF30\View\View The instance of the Model known to this Controller

hasRedirect() public méthode

Returns true if there is a redirect set in the controller
public hasRedirect ( ) : boolean
Résultat boolean

main() public méthode

Alias to the display() task
public main ( )

redirect() public méthode

Redirects the browser or returns false if no redirect is set.
public redirect ( ) : boolean
Résultat boolean False if no redirect exists.

registerDefaultTask() public méthode

Register the default task to perform if a mapping is not found.
public registerDefaultTask ( string $method ) : Controller
$method string The name of the method in the derived class to perform if a named task is not found.
Résultat Controller This object to support chaining.

registerTask() public méthode

Register (map) a task to a method in the class.
public registerTask ( string $task, string $method ) : Controller
$task string The task.
$method string The name of the method in the derived class to perform for this task.
Résultat Controller This object to support chaining.

setMessage() public méthode

Sets the internal message that is passed with a redirect
public setMessage ( string $text, string $type = 'message' ) : string
$text string Message to display on redirect.
$type string Message type. Optional, defaults to 'message'.
Résultat string Previous message

setModel() public méthode

Pushes a named model to the Controller
public setModel ( string $modelName, Model &$model ) : void
$modelName string The name of the Model
$model FOF30\Model\Model The actual Model object to push
Résultat void

setModelName() public méthode

Set the name of the model to be used by this Controller
public setModelName ( string $modelName ) : void
$modelName string The name of the model
Résultat void

setRedirect() public méthode

Set a URL for browser redirection.
public setRedirect ( string $url, string $msg = null, string $type = null ) : Controller
$url string URL to redirect to.
$msg string Message to display on redirect. Optional, defaults to value set internally by controller, if any.
$type string Message type. Optional, defaults to 'message' or the type set by a previous call to setMessage.
Résultat Controller This object to support chaining.

setView() public méthode

Pushes a named view to the Controller
public setView ( string $viewName, View &$view ) : void
$viewName string The name of the View
$view FOF30\View\View The actual View object to push
Résultat void

setViewName() public méthode

Set the name of the view to be used by this Controller
public setViewName ( string $viewName ) : void
$viewName string The name of the view
Résultat void

triggerEvent() protected méthode

EXAMPLE Component: com_foobar, Object name: item, Event: onBeforeSomething, Arguments: array(123, 456) The event calls: 1. $this->onBeforeSomething(123, 456) 2. $this->checkACL('@something') if there is no onBeforeSomething and the event starts with onBefore 3. Joomla! plugin event onComFoobarControllerItemBeforeSomething($this, 123, 456)
protected triggerEvent ( string $event, array $arguments = [] ) : boolean
$event string The name of the event, typically named onPredicateVerb e.g. onBeforeKick
$arguments array The arguments to pass to the event handlers
Résultat boolean

unregisterTask() public méthode

Unregister (unmap) a task in the class.
public unregisterTask ( string $task ) : Controller
$task string The task.
Résultat Controller This object to support chaining.

Property Details

$autoRouting protected_oe property

0 = never 1 = frontend only 2 = backend only 3 = always
protected int $autoRouting
Résultat integer

$cacheableTasks protected_oe property

The tasks for which caching should be enabled by default
protected array $cacheableTasks
Résultat array

$config protected_oe property

A cached copy of the class configuration parameter passed during initialisation
protected array $config
Résultat array

$container protected_oe property

The container attached to this Controller
protected Container,FOF30\Container $container
Résultat FOF30\Container\Container

$csrfProtection protected_oe property

0 Disabled; no token checks are performed 1 Enabled; token checks are always performed 2 Only on HTML requests and backend; token checks are always performed in the back-end and in the front-end only when format is 'html' 3 Only on back-end; token checks are performed only in the back-end
protected int $csrfProtection
Résultat integer

$doTask protected_oe property

The mapped task that was performed.
protected string $doTask
Résultat string

$instance protected_oe static_oe property

Instance container.
protected static Controller,FOF30\Controller $instance
Résultat Controller

$layout protected_oe property

The current layout; you can override it in the configuration
protected string $layout
Résultat string

$message protected_oe property

Redirect message.
protected string $message
Résultat string

$messageType protected_oe property

Redirect message type.
protected string $messageType
Résultat string

$methods protected_oe property

Array of class methods
protected array $methods
Résultat array

$modelInstances protected_oe property

An array of Model instances known to this Controller
protected array[Model] $modelInstances
Résultat array[Model]

$modelName protected_oe property

Overrides the name of the view's default model
protected string $modelName
Résultat string

$name protected_oe property

The name of the controller
protected array $name
Résultat array

$paths protected_oe property

The set of search directories for resources (views).
protected array $paths
Résultat array

$redirect protected_oe property

URL for redirection.
protected string $redirect
Résultat string

$task protected_oe property

Current or most recently performed task.
protected string $task
Résultat string

$taskMap protected_oe property

Array of class methods to call for a given task.
protected array $taskMap
Résultat array

$taskPrivileges protected_oe property

You can use the notation '@task' which means 'apply the same privileges as "task"'. If you create a reference back to yourself (e.g. 'mytask' => array('@mytask')) it will return TRUE.
protected array $taskPrivileges
Résultat array

$view protected_oe property

The current view name; you can override it in the configuration
protected string $view
Résultat string

$viewInstances protected_oe property

An array of View instances known to this Controller
protected array[View] $viewInstances
Résultat array[View]

$viewName protected_oe property

Overrides the name of the view's default view
protected string $viewName
Résultat string