From Joomla! Documentation

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

JController is an abstract class which provides the basic functionality for your own Controller classes which your create for your components. The Controller is part of Joomla's MVC Pattern. Learn how to develop a component using MVC

The Joomla MVC Design Pattern

Model-View-Controller (MVC) is a set of design patterns, that are used to separate the different layers of your application.

  • The View displays the data of the model by passing it to a template. The view object can therefore access the data of the model. Joomla implements the basic functionality in the abstract JView class.
  • The Model stores the data of the application, and contains the business logic. Joomla implements the basic functionality in the abstract JModel class.
  • The Controller handles the user requests and evokes the model and the views to change it's state. Joomla implements the basic functionality in the JController class.

Defined in



Method name Description
getInstance Method to get a singleton controller instance.
addModelPath Adds to the stack of model paths in LIFO order.
addViewPath Add one or more view paths to the controller's stack, in LIFO order.
__construct Constructor.
execute Execute a task by triggering a method in the derived class.
authorize Authorization check
display Typical view method for MVC based architecture
redirect Redirects the browser or returns false if no redirect is set.
getModel Method to get a model object, loading it if required.
getTasks Gets the available tasks in the controller. public array Array[i] of task names.


getTask Get the last task that is or was to be performed.
getName Method to get the controller name
getView Method to get a reference to the current view and load it if necessary.
registerTask Register (map) a task to a method in the class.
registerDefaultTask Register the default task to perform if a mapping is not found.
setMessage Sets the internal message that is passed with a redirect
setRedirect Set a URL for browser redirection.
setAccessControl Sets the access control levels.


jimport( 'joomla.application.component.controller' );


Code Examples