Application execution order

From Joomla! Documentation

(Redirected from API Execution Order)
Quill icon.png
Content is Incomplete

This article or section is incomplete, which means it may be lacking information. You are welcome to assist in its completion by editing it as well. If this article or section has not been edited in several days, please consider helping complete the content.
This article was last edited by Aerendir (talk| contribs) 10 years ago. (Purge)

Typical Frontend Application Execution[edit]

This section outlines key points in the execution of the Joomla! script including, but not limited to, key files included, key methods called, triggers triggered, and so on.

Initialisation[edit]

  • Load once: defines.php
  • Load once: framework.php
    • Modify configuration options for magic quotes and Zend compatibility
    • Check for configuration.php. Redirect to installation if present or halt.
    • Load once: import.php
    • Load once: configuration.php
    • Set error reporting
    • Load PHP compatibility functions and classes
    • Initialise profiler (if debug on)
    • Import joomla.application.menu
    • Import joomla.user.user
    • Import joomla.environment.uri
    • Import joomla.html.html
    • Import joomla.utilities.utility
    • Import joomla.event.event
    • Import joomla.event.dispatcher
    • Import joomla.language.language
    • Import joomla.utilities.string
  • Profile mark: afterLoad
  • Set global $mainframe. Call to JFactory::getApplication('site')
    • Create and return instance. Call to JApplication::getInstance
  • Initialise the application. Call to JSite::initialise
    • Load base language files
    • Call to parent::initialise
      • First call to JFactory::getUser (initialises user)
        • Import joomla.user.user
        • Create session. Call to JFactory::getSession
      • Set editor based on user preference if available
  • Import the system plugins. Call to JPluginHelper::importPlugin('system')
  • Profile mark: afterInitialise
  • Trigger events: onAfterInitialise

Routing and Authorisation[edit]

  • Route the URI: Call to JSite::route
  • Call to JSite::authorize
    • Check current menu item access level. Redirect if not logged in. Halt if logged in and not authorised.
  • Profile mark: afterRoute
  • Trigger events: onAfterRoute

Dispatching[edit]

  • Dispatch the component: Call to JSite::dispatch
  • Profile mark: afterDispatch
  • Trigger events: onAfterDispatch

Rendering[edit]

  • Render the page: Call to JSite::render
  • Profile mark: afterRender
  • Trigger events: onAfterRender
  • Echo output: Call to JResponse::toString with option for compressed output

Typical Administrator Application Execution[edit]

TODO

Typical XML-RPC Application Execution[edit]

TODO

Login Event Execution[edit]

This execution trace begins with at the User Component Controller method for login, UserController::login (called within the application dispatch method)

TODO