Menu

前台 Joomla! API 執行順序

Initialisation 初始化

  • 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

  • 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 分派

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

Rendering 渲染

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