ApiApplication

Extends \Joomla\CMS\Application\CMSApplication

Joomla! API Application class

final
since

4.0.0

Methods

__construct

Class constructor.

__construct(\Joomla\CMS\Input\Input $input = null, \Joomla\Registry\Registry $config = null, \Joomla\Application\Web\WebClient $client = null, \Psr\Http\Message\ResponseInterface $response = null) 
inherited
since

1.7.3

Arguments

$input

\Joomla\CMS\Input\InputAn optional argument to provide dependency injection for the application's input object. If the argument is a JInput object that object will become the application's input object, otherwise a default input object is created.

$config

\Joomla\Registry\RegistryAn optional argument to provide dependency injection for the application's config object. If the argument is a Registry object that object will become the application's config object, otherwise a default config object is created.

$client

\Joomla\Application\Web\WebClientAn optional argument to provide dependency injection for the application's client object. If the argument is a WebClient object that object will become the application's client object, otherwise a default client object is created.

$response

\Psr\Http\Message\ResponseInterfaceAn optional argument to provide dependency injection for the application's response object. If the argument is a ResponseInterface object that object will become the application's response object, otherwise a default response object is created.

addFormatMap

Adds a mapping from a content type to the format stored. Note the format type cannot be overwritten.

addFormatMap(string $contentHeader, string $format) : void
since

4.0.0

Arguments

$contentHeader

stringThe content header

$format

stringThe content type format

afterSessionStart

After the session has been started we need to populate it with some default values.

afterSessionStart(\Joomla\Session\SessionEvent $event) : void
inherited
since

3.0.1

Arguments

$event

\Joomla\Session\SessionEventSession event being triggered

bootComponent

Boots the component with the given name.

bootComponent(string $component) : \Joomla\CMS\Extension\ComponentInterface
inherited
since

4.0.0

Arguments

$component

stringThe component to boot.

Response

\Joomla\CMS\Extension\ComponentInterface

bootModule

Boots the module with the given name.

bootModule(string $module, string $applicationName) : \Joomla\CMS\Extension\ModuleInterface
inherited
since

4.0.0

Arguments

$module

stringThe module to boot

$applicationName

stringThe application name

Response

\Joomla\CMS\Extension\ModuleInterface

bootPlugin

Boots the plugin with the given name and type.

bootPlugin(string $plugin, string $type) : \Joomla\CMS\Extension\PluginInterface
inherited
since

4.0.0

Arguments

$plugin

stringThe plugin name

$type

stringThe type of the plugin

Response

\Joomla\CMS\Extension\PluginInterface

checkSession

Checks the user session.

checkSession() : void
inherited

If the session record doesn't exist, initialise it. If session is new, create session variables

since

3.2

throws

\RuntimeException

checkToken

Checks for a form token in the request.

checkToken(string $method = 'post') : boolean
inherited

Use in conjunction with getFormToken.

since

4.0.0

Arguments

$method

stringThe request method in which to look for the token key.

Response

booleanTrue if found and valid, false otherwise.

checkUserRequireReset

Check if the user is required to reset their password.

checkUserRequireReset(string $option, string $view, string $layout, string $tasks) : void
inherited

If the user is required to reset their password will be redirected to the page that manage the password reset.

throws

\Exception

Arguments

$option

stringThe option that manage the password reset

$view

stringThe view that manage the password reset

$layout

stringThe layout of the view that manage the password reset

$tasks

stringPermitted tasks

createExtensionNamespaceMap

Allows the application to load a custom or default identity.

createExtensionNamespaceMap() : void
inherited
since

4.0.0

dispatch

Dispatch the application

dispatch(string $component = null) : void
since

4.0.0

Arguments

$component

stringThe component which is being rendered.

doExecute

Method to run the application routines.

doExecute() : void

Most likely you will want to instantiate a controller and execute it, or perform some sort of task directly.

since

4.0.0

enqueueMessage

Enqueue a system message.

enqueueMessage(string $msg, string $type = self::MSG_INFO) : void
inherited
since

3.2

Arguments

$msg

stringThe message to enqueue.

$type

stringThe message type. Default is message.

execute

Execute the application.

execute() : void
inherited
since

1.7.3

flushAssets

Flush the media version to refresh versionable assets

flushAssets() : void
inherited
since

3.2

getApiRouter

Returns the application Router object.

getApiRouter() : \Joomla\CMS\Router\ApiRouter
since

4.0.0

Response

\Joomla\CMS\Router\ApiRouter

getCfg

Gets a configuration value.

getCfg(string $varname, string $default = null) : mixed
inherited deprecated
since

3.2

deprecated

5.0 Use get() instead

Arguments

$varname

stringThe name of the value to get.

$default

stringDefault value to return

Response

mixedThe user state.

getClientId

Gets the client id of the current running application.

getClientId() : integer
inherited
since

3.2

Response

integerA client identifier.

getConfig

Retrieve the application configuration object.

getConfig() : \Joomla\Registry\Registry
inherited
since

4.0.0

Response

\Joomla\Registry\Registry

getContainer

Get the DI container.

getContainer() : \Joomla\DI\Container
inherited abstract
since

4.0.0

throws

\Joomla\DI\Exception\ContainerNotFoundExceptionMay be thrown if the container has not been set.

Response

\Joomla\DI\Container

getDispatcher

Get the event dispatcher.

getDispatcher() : \Joomla\Event\DispatcherInterface
inherited abstract
since

4.0.0

throws

\UnexpectedValueExceptionMay be thrown if the dispatcher has not been set.

Response

\Joomla\Event\DispatcherInterface

getDocument

Method to get the application document object.

getDocument() : \Joomla\CMS\Document\Document
inherited
since

1.7.3

Response

\Joomla\CMS\Document\DocumentThe document object

getFormToken

Method to determine a hash for anti-spoofing variable names

getFormToken(boolean $forceNew = false) : string
inherited
since

4.0.0

Arguments

$forceNew

booleanIf true, force a new token to be created

Response

stringHashed var name

getIdentity

Get the application identity.

getIdentity() : \Joomla\CMS\User\User
inherited
since

4.0.0

Response

\Joomla\CMS\User\User

getInstance

Returns a reference to the global WebApplication object, only creating it if it doesn't already exist.

getInstance(string $name = null) : \Joomla\CMS\Application\WebApplication
inherited static deprecated

This method must be invoked as: $web = WebApplication::getInstance();

since

1.7.3

throws

\RuntimeException

deprecated

5.0 Use \Joomla\CMS\Factory::getContainer()->get($name) instead

Arguments

$name

stringThe name (optional) of the JApplicationWeb class to instantiate.

Response

\Joomla\CMS\Application\WebApplication

getLanguage

Method to get the application language object.

getLanguage() : \Joomla\CMS\Language\Language
inherited
since

1.7.3

Response

\Joomla\CMS\Language\LanguageThe language object

getLogger

Get the logger.

getLogger() : \Psr\Log\LoggerInterface
inherited abstract
since

4.0.0

Response

\Psr\Log\LoggerInterface

getMenu

Returns the application \JMenu object.

getMenu(string $name = null, array $options = array()) : \Joomla\CMS\Menu\AbstractMenu
inherited
since

3.2

Arguments

$name

stringThe name of the application/client.

$options

arrayAn optional associative array of configuration settings.

Response

\Joomla\CMS\Menu\AbstractMenu

getMessageQueue

Get the system message queue.

getMessageQueue(boolean $clear = false) : array
inherited
since

3.2

Arguments

$clear

booleanClear the messages currently attached to the application object

Response

arrayThe system message queue.

getName

Gets the name of the current running application.

getName() : string
inherited
since

3.2

Response

stringThe name of the application.

getPathway

Returns the application Pathway object.

getPathway() : \Joomla\CMS\Pathway\Pathway
inherited
since

3.2

Response

\Joomla\CMS\Pathway\Pathway

getRouter

Returns the application Router object.

getRouter(string $name = null, array $options = array()) : \Joomla\CMS\Router\Router
inherited static
since

3.2

Arguments

$name

stringThe name of the application.

$options

arrayAn optional associative array of configuration settings.

Response

\Joomla\CMS\Router\Router

getTemplate

Gets the name of the current template.

getTemplate(boolean $params = false) : mixed
inherited
since

3.2

Arguments

$params

booleanAn optional associative array of configuration settings

Response

mixedSystem is the fallback.

getUserState

Gets a user state.

getUserState(string $key, mixed $default = null) : mixed
inherited
since

3.2

Arguments

$key

stringThe path of the state.

$default

mixedOptional default value, returned if the internal value is null.

Response

mixedThe user state or null.

getUserStateFromRequest

Gets the value of a user state variable.

getUserStateFromRequest(string $key, string $request, string $default = null, string $type = 'none') : mixed
inherited
since

3.2

Arguments

$key

stringThe key of the user state variable.

$request

stringThe name of the variable passed in a request.

$default

stringThe default value for the variable if not found. Optional.

$type

stringFilter for the variable, for valid values see {@link InputFilter::clean()}. Optional.

Response

mixedThe request user state.

handlePreflight

Handles preflight requests.

handlePreflight(String $method, \Joomla\CMS\Router\ApiRouter $router) : void
since

4.0.0

Arguments

$method

StringThe REST verb

$router

\Joomla\CMS\Router\ApiRouterThe API Routing object

hasUserConfiguredTwoFactorAuthentication

Checks if otpKey and otep for the user are not empty if any one is empty returns false, else returns true

hasUserConfiguredTwoFactorAuthentication() : boolean
inherited
since

4.0.0

throws

\Exception

Response

boolean

initialiseApp

Initialise the application.

initialiseApp(array $options = array()) : void
inherited
since

3.2

Arguments

$options

arrayAn optional associative array of configuration settings.

isCli

Flag if the application instance is a CLI or web based application.

isCli() : boolean
inherited deprecated

Helper function, you should use the native PHP functions to detect if it is a CLI application.

since

4.0.0

deprecated

5.0 Will be removed without replacements

Response

boolean

isClient

Check the client interface by name.

isClient(string $identifier) : boolean
inherited
since

3.7.0

Arguments

$identifier

stringString identifier for the application interface

Response

booleanTrue if this application is of the given type client interface.

isHttpsForced

Checks if HTTPS is forced in the client configuration.

isHttpsForced(integer $clientId = null) : boolean
inherited
since

3.7.3

Arguments

$clientId

integerAn optional client id (defaults to current application client).

Response

booleanTrue if is forced for the client, false otherwise.

isTwoFactorAuthenticationRequired

Checks if 2fa needs to be enforced if so returns true, else returns false

isTwoFactorAuthenticationRequired() : boolean
inherited
since

4.0.0

throws

\Exception

Response

boolean

loadDocument

Allows the application to load a custom or default document.

loadDocument(\Joomla\CMS\Document\Document $document = null) : \Joomla\CMS\Application\WebApplication
inherited

The logic and options for creating this object are adequately generic for default cases but for many applications it will make sense to override this method and create a document, if required, based on more specific needs.

since

1.7.3

Arguments

$document

\Joomla\CMS\Document\DocumentAn optional document object. If omitted, the factory document is created.

Response

\Joomla\CMS\Application\WebApplicationThis method is chainable.

loadExtension

Loads the extension.

loadExtension(string $type, string $extensionName, string $extensionPath) : \Joomla\CMS\Extension\ComponentInterface|\Joomla\CMS\Extension\ModuleInterface|\Joomla\CMS\Extension\PluginInterface
inherited
since

4.0.0

Arguments

$type

stringThe extension type

$extensionName

stringThe extension name

$extensionPath

stringThe path of the extension

Response

\Joomla\CMS\Extension\ComponentInterface|\Joomla\CMS\Extension\ModuleInterface|\Joomla\CMS\Extension\PluginInterface

loadIdentity

Allows the application to load a custom or default identity.

loadIdentity(\Joomla\CMS\User\User $identity = null) : $this
inherited
since

4.0.0

Arguments

$identity

\Joomla\CMS\User\UserAn optional identity object. If omitted, a null user object is created.

Response

$this

loadLanguage

Allows the application to load a custom or default language.

loadLanguage(\Joomla\CMS\Language\Language $language = null) : \Joomla\CMS\Application\WebApplication
inherited

The logic and options for creating this object are adequately generic for default cases but for many applications it will make sense to override this method and create a language, if required, based on more specific needs.

since

1.7.3

Arguments

$language

\Joomla\CMS\Language\LanguageAn optional language object. If omitted, the factory language is created.

Response

\Joomla\CMS\Application\WebApplicationThis method is chainable.

loadLibraryLanguage

Load the library language files for the application

loadLibraryLanguage() : void
inherited
since

3.6.3

loadPluginFromFilesystem

Creates a CMS plugin from the filesystem.

loadPluginFromFilesystem(string $plugin, string $type) : \Joomla\CMS\Plugin\CMSPlugin
inherited
since

4.0.0

Arguments

$plugin

stringThe plugin

$type

stringThe type

Response

\Joomla\CMS\Plugin\CMSPlugin

loadSession

Allows the application to load a custom or default session.

loadSession(\Joomla\CMS\Session\Session $session = null) : \Joomla\CMS\Application\WebApplication
inherited deprecated

The logic and options for creating this object are adequately generic for default cases but for many applications it will make sense to override this method and create a session, if required, based on more specific needs.

since

1.7.3

deprecated

5.0 The session should be injected as a service.

Arguments

$session

\Joomla\CMS\Session\SessionAn optional session object. If omitted, the session is created.

Response

\Joomla\CMS\Application\WebApplicationThis method is chainable.

loadSystemUris

Method to load the system URI strings for the application.

loadSystemUris(string $requestUri = null) : void
inherited
since

1.7.3

Arguments

$requestUri

stringAn optional request URI to use instead of detecting one from the server environment variables.

login

Login authentication function.

login(array $credentials, array $options = array()) : boolean|\Exception
inherited

Username and encoded password are passed the onUserLogin event which is responsible for the user validation. A successful validation updates the current session record with the user's details.

Username and encoded password are sent as credentials (along with other possibilities) to each observer (authentication plugin) for user validation. Successful validation will update the current session with the user details.

since

3.2

Arguments

$credentials

arrayArray('username' => string, 'password' => string)

$options

arrayArray('remember' => boolean)

Response

boolean|\ExceptionTrue on success, false if failed or silent handling is configured, or a \Exception object on authentication error.

logout

Logout authentication function.

logout(integer $userid = null, array $options = array()) : boolean
inherited

Passed the current user information to the onUserLogout event and reverts the current session record back to 'anonymous' parameters. If any of the authentication plugins did not successfully complete the logout routine then the whole method fails. Any errors raised should be done in the plugin as this provides the ability to give much more information about why the routine may have failed.

since

3.2

Arguments

$userid

integerThe user to load - Can be an integer or string - If string, it is converted to ID automatically

$options

arrayArray('clientid' => array of client id's)

Response

booleanTrue on success

redirect

Redirect to another URL.

redirect(string $url, integer $status = 303) : void
inherited

If the headers have not been sent the redirect will be accomplished using a "301 Moved Permanently" or "303 See Other" code in the header pointing to the new location. If the headers have already been sent this will be accomplished using a JavaScript statement.

since

3.2

Arguments

$url

stringThe URL to redirect to. Can only be http/https URL

$status

integerThe HTTP 1.1 status code to be provided. 303 is assumed by default.

redirectIfTwoFactorAuthenticationRequired

Redirects user to his Two Factor Authentication setup page

redirectIfTwoFactorAuthenticationRequired() : void
inherited
since

4.0.0

registerEvent

Registers a handler to a particular event group.

registerEvent(string $event, callable $handler) : $this
inherited
since

4.0.0

Arguments

$event

stringThe event name.

$handler

callableThe handler, a function or an instance of an event object.

Response

$this

render

Rendering is the process of pushing the document buffers into the template placeholders, retrieving data from the document and pushing it into the application response buffer.

render() : void
inherited
since

1.7.3

respond

Method to send the application response to the client. All headers will be sent prior to the main application output data.

respond(array $options = array()) : void
since

4.0.0

Arguments

$options

arrayAn optional argument to enable CORS. (Temporary)

route

Route the application.

route() : void
inherited

Routing is the process of examining the request environment to determine which component should receive the request. The component optional parameters are then set in the request object to be processed when the application is being dispatched.

since

3.2

sanityCheckSystemVariables

Ensure several core system input variables are not arrays.

sanityCheckSystemVariables() : void
inherited
since

3.9

setupLogging

Setup logging functionality.

setupLogging() : void
inherited
since

4.0.0

setUserFactory

Set the user factory to use.

setUserFactory(\Joomla\CMS\User\UserFactoryInterface $userFactory) : void
inherited
since

4.0.0

Arguments

$userFactory

\Joomla\CMS\User\UserFactoryInterfaceThe user factory to use

setUserState

Sets the value of a user state variable.

setUserState(string $key, mixed $value) : mixed|void
inherited
since

3.2

Arguments

$key

stringThe path of the state.

$value

mixedThe value of the variable.

Response

mixed|voidThe previous state, if one existed.

toString

Sends all headers prior to returning the string

toString(boolean $compress = false) : string
inherited
since

3.2

Arguments

$compress

booleanIf true, compress the data

Response

string

triggerEvent

Calls all handlers associated with an event group.

triggerEvent(string $eventName, array|\Joomla\Event\Event $args = array()) : array
inherited deprecated

This is a legacy method, implementing old-style (Joomla! 3.x) plugin calls. It's best to go directly through the Dispatcher and handle the returned EventInterface object instead of going through this method. This method is deprecated and will be removed in Joomla! 5.x.

This method will only return the 'result' argument of the event

since

4.0.0

throws

\InvalidArgumentException

deprecated

5.0

Arguments

$eventName

stringThe event name.

$args

array|\Joomla\Event\EventAn array of arguments or an Event object (optional).

Response

arrayAn array of results from each function call. Note this will be an empty array if no dispatcher is set.

Properties

formatMapper

Maps extension types to their

since

4.0.0

Type(s)

array

authenticationPluginType

The authentication plugin type

inherited
since

4.0.0

Type(s)

string

docOptions

Array of options for the \JDocument object

inherited
since

3.2

Type(s)

array

instances

Application instances container.

inherited static
since

3.2

Type(s)

array<mixed,\Joomla\CMS\Application\CmsApplication>

scope

The scope of the application.

inherited
since

3.2

Type(s)

string

clientId

The client identifier.

inherited
since

4.0.0

Type(s)

integer

messageQueue

The application message queue.

inherited
since

4.0.0

Type(s)

array

name

The name of the application.

inherited
since

4.0.0

Type(s)

string

profiler

The profiler instance

inherited
since

3.2

Type(s)

\Joomla\CMS\Profiler\Profiler

template

Currently active template

inherited
since

3.2

Type(s)

object

pathway

The pathway object

inherited
since

4.0.0

Type(s)

\Joomla\CMS\Pathway\Pathway

document

The application document object.

inherited
since

1.7.3

Type(s)

\Joomla\CMS\Document\Document

language

The application language object.

inherited
since

1.7.3

Type(s)

\Joomla\CMS\Language\Language

instance

The application instance.

inherited static
since

1.7.3

Type(s)

static

identity

The application identity object.

inherited
since

4.0.0

Type(s)

\Joomla\CMS\User\User

userFactory

UserFactoryInterface

inherited