0 follower

CApplication

Package system.base
Inheritance abstract class CApplication » CModule » CComponent
Subclasses CConsoleApplication, CWebApplication
Since 1.0
Version $Id$
Source Code framework/base/CApplication.php
CApplication is the base class for all application classes.

An application serves as the global context that the user request is being processed. It manages a set of application components that provide specific functionalities to the whole application.

The core application components provided by CApplication are the following:
  • errorHandler: handles PHP errors and uncaught exceptions. This application component is dynamically loaded when needed.
  • securityManager: provides security-related services, such as hashing, encryption. This application component is dynamically loaded when needed.
  • statePersister: provides global state persistence method. This application component is dynamically loaded when needed.
  • cache: provides caching feature. This application component is disabled by default.
  • messages: provides the message source for translating application messages. This application component is dynamically loaded when needed.
  • coreMessages: provides the message source for translating Yii framework messages. This application component is dynamically loaded when needed.


CApplication will undergo the following lifecycles when processing a user request:
  1. load application configuration;
  2. set up class autoloader and error handling;
  3. load static application components;
  4. onBeginRequest: preprocess the user request;
  5. processRequest: process the user request;
  6. onEndRequest: postprocess the user request;


Starting from lifecycle 3, if a PHP error or an uncaught exception occurs, the application will switch to its error handling logic and jump to step 6 afterwards.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
basePath string the root directory of the application. CApplication
behaviors array the behaviors that should be attached to the module. CModule
cache CCache the cache application component. CApplication
charset string the charset currently used for the application. CApplication
components array the currently loaded components (indexed by their IDs) CModule
coreMessages CPhpMessageSource the core message translations CApplication
dateFormatter CDateFormatter the locale-dependent date formatter. CApplication
db CDbConnection the database connection CApplication
errorHandler CErrorHandler the error handler application component. CApplication
extensionPath string Returns the root directory that holds all third-party extensions. CApplication
id string a unique identifier for the application. CApplication
language string the language that the user is using and the application should be targeted to. CApplication
locale CLocale the locale instance CApplication
messages CMessageSource the application message translations CApplication
modulePath string the directory that contains the application modules. CModule
modules array the configuration of the currently installed modules (module ID => configuration) CModule
name string the application name. CApplication
numberFormatter CNumberFormatter the locale-dependent number formatter. CApplication
params CAttributeCollection the list of user-defined parameters CModule
parentModule CModule the parent module. CModule
preload array the IDs of the application components that should be preloaded. CModule
request CHttpRequest the request component CApplication
runtimePath string the directory that stores runtime files. CApplication
securityManager CSecurityManager the security manager application component. CApplication
sourceLanguage string the language that the application is written in. CApplication
statePersister CStatePersister the state persister application component. CApplication
timeZone string Returns the time zone used by this application. CApplication
urlManager CUrlManager the URL manager component CApplication

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__construct() Constructor. CApplication
__get() Getter magic method. CModule
__isset() Checks if a property value is null. CModule
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
clearGlobalState() Clears a global value. CApplication
configure() Configures the module with the specified configuration. CModule
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
displayError() Displays the captured PHP error. CApplication
displayException() Displays the uncaught PHP exception. CApplication
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
end() Terminates the application. CApplication
findLocalizedFile() Returns the localized version of a specified file. CApplication
getBasePath() Returns the root directory of the application. Defaults to 'protected'. CApplication
getCache() Returns the cache application component. Null if the component is not enabled. CApplication
getComponent() Retrieves the named application component. CModule
getComponents() Returns the currently loaded components (indexed by their IDs) CModule
getCoreMessages() Returns the core message translations CApplication
getDateFormatter() Returns the locale-dependent date formatter. The current application locale will be used. CApplication
getDb() Returns the database connection CApplication
getErrorHandler() Returns the error handler application component. CApplication
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getExtensionPath() Returns the root directory that holds all third-party extensions. CApplication
getGlobalState() Returns a global value. CApplication
getId() Returns a unique identifier for the application. CApplication
getLanguage() Returns the language that the user is using and the application should be targeted to. Defaults to the source language. CApplication
getLocale() Returns the locale instance CApplication
getMessages() Returns the application message translations CApplication
getModule() Retrieves the named application module. CModule
getModulePath() Returns the directory that contains the application modules. Defaults to the 'modules' subdirectory of basePath. CModule
getModules() Returns the configuration of the currently installed modules (module ID => configuration) CModule
getNumberFormatter() Returns the locale-dependent number formatter. The current application locale will be used. CApplication
getParams() Returns the list of user-defined parameters CModule
getParentModule() Returns the parent module. Null if this module does not have a parent. CModule
getRequest() Returns the request component CApplication
getRuntimePath() Returns the directory that stores runtime files. Defaults to 'protected/runtime'. CApplication
getSecurityManager() Returns the security manager application component. CApplication
getStatePersister() Returns the state persister application component. CApplication
getTimeZone() Returns the time zone used by this application. CApplication
getUrlManager() Returns the URL manager component CApplication
handleError() Handles PHP execution errors such as warnings, notices. CApplication
handleException() Handles uncaught PHP exceptions. CApplication
hasComponent() Determines whether the named application component exists (including both loaded and disabled.) CModule
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
onBeginRequest() Raised right BEFORE the application processes the request. CApplication
onEndRequest() Raised right AFTER the application processes the request. CApplication
onError() Raised when a PHP execution error occurs. CApplication
onException() Raised when an uncaught PHP exception occurs. CApplication
processRequest() Processes the request. CApplication
raiseEvent() Raises an event. CComponent
run() Runs the application. CApplication
setAliases() Defines the root aliases. CModule
setBasePath() Sets the root directory of the application. CApplication
setComponent() Puts a component under the management of the module. CModule
setComponents() Sets the application components. CModule
setExtensionPath() Sets the directory that contains all third-party extensions. CApplication
setGlobalState() Sets a global value. CApplication
setId() Sets a unique identifier for the application. CApplication
setImport() Sets the aliases that are used in the module. CModule
setLanguage() Specifies which language the application is targeted to. CApplication
setModulePath() Sets the directory that contains the application modules. CModule
setModules() Configures the sub-modules of this module. CModule
setParams() Sets user-defined parameters. This should be in name-value pairs. CModule
setRuntimePath() Sets the directory that stores runtime files. CApplication
setTimeZone() Sets the time zone used by this application. CApplication

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
init() Initializes the module. CModule
initSystemHandlers() Initializes the class autoloader and error handlers. CApplication
loadGlobalState() Loads the global state data from persistent storage. CApplication
preinit() Preinitializes the module. CModule
preloadComponents() Loads static application components. CModule
registerCoreComponents() Registers the core application components. CApplication
saveGlobalState() Saves the global state data into persistent storage. CApplication

Events

Hide inherited events

EventDescriptionDefined By
onBeginRequest Raised right BEFORE the application processes the request. CApplication
onEndRequest Raised right AFTER the application processes the request. CApplication
onException Raised when an uncaught PHP exception occurs. CApplication
onError Raised when a PHP execution error occurs. CApplication

Property Details

basePath property
public string getBasePath()
public void setBasePath(string $path)

the root directory of the application. Defaults to 'protected'.

cache property read-only
public CCache getCache()

the cache application component. Null if the component is not enabled.

charset property
public string $charset;

the charset currently used for the application. Defaults to 'UTF-8'.

coreMessages property read-only

the core message translations

dateFormatter property read-only

the locale-dependent date formatter. The current application locale will be used.

db property read-only

the database connection

errorHandler property read-only

the error handler application component.

extensionPath property
public string getExtensionPath()
public void setExtensionPath(string $path)

Returns the root directory that holds all third-party extensions.

id property
public string getId()
public void setId(string $id)

a unique identifier for the application.

language property
public string getLanguage()
public void setLanguage(string $language)

the language that the user is using and the application should be targeted to. Defaults to the source language.

locale property read-only
public CLocale getLocale(string $localeID=NULL)

the locale instance

messages property read-only

the application message translations

name property
public string $name;

the application name. Defaults to 'My Application'.

numberFormatter property read-only

the locale-dependent number formatter. The current application locale will be used.

request property read-only

the request component

runtimePath property
public string getRuntimePath()
public void setRuntimePath(string $path)

the directory that stores runtime files. Defaults to 'protected/runtime'.

securityManager property read-only

the security manager application component.

sourceLanguage property
public string $sourceLanguage;

the language that the application is written in. This mainly refers to the language that the messages and view files are in. Defaults to 'en_us' (US English).

statePersister property read-only

the state persister application component.

timeZone property (available since v1.0.9)
public string getTimeZone()
public void setTimeZone(string $value)

Returns the time zone used by this application. This is a simple wrapper of PHP function date_default_timezone_get().

urlManager property read-only

the URL manager component

Method Details

__construct() method
public void __construct(mixed $config=NULL)
$config mixed application configuration. If a string, it is treated as the path of the file that contains the configuration; If an array, it is the actual configuration information. Please make sure you specify the basePath property in the configuration, which should point to the directory containing all application logic, template and data. If not, the directory will be defaulted to 'protected'.
Source Code: framework/base/CApplication.php#94 (show)
public function __construct($config=null)
{
    
Yii::setApplication($this);

    
// set basePath at early as possible to avoid trouble
    
if(is_string($config))
        
$config=require($config);
    if(isset(
$config['basePath']))
    {
        
$this->setBasePath($config['basePath']);
        unset(
$config['basePath']);
    }
    else
        
$this->setBasePath('protected');
    
Yii::setPathOfAlias('application',$this->getBasePath());
    
Yii::setPathOfAlias('webroot',dirname($_SERVER['SCRIPT_FILENAME']));
    
Yii::setPathOfAlias('ext',$this->getBasePath().DIRECTORY_SEPARATOR.'extensions');

    
$this->preinit();

    
$this->initSystemHandlers();
    
$this->registerCoreComponents();

    
$this->configure($config);
    
$this->attachBehaviors($this->behaviors);
    
$this->preloadComponents();

    
$this->init();
}

Constructor.

clearGlobalState() method
public void clearGlobalState(string $key)
$key string the name of the value to be cleared
Source Code: framework/base/CApplication.php#486 (show)
public function clearGlobalState($key)
{
    if(
$this->_globalState===null)
        
$this->loadGlobalState();
    if(isset(
$this->_globalState[$key]))
    {
        
$this->_stateChanged=true;
        unset(
$this->_globalState[$key]);
    }
}

Clears a global value.

The value cleared will no longer be available in this request and the following requests.

displayError() method
public void displayError(integer $code, string $message, string $file, string $line)
$code integer error code
$message string error message
$file string error file
$line string error line
Source Code: framework/base/CApplication.php#682 (show)
public function displayError($code,$message,$file,$line)
{
    if(
YII_DEBUG)
    {
        echo 
"<h1>PHP Error [$code]</h1>\n";
        echo 
"<p>$message ($file:$line)</p>\n";
        echo 
'<pre>';
        
debug_print_backtrace();
        echo 
'</pre>';
    }
    else
    {
        echo 
"<h1>PHP Error [$code]</h1>\n";
        echo 
"<p>$message</p>\n";
    }
}

Displays the captured PHP error. This method displays the error in HTML when there is no active error handler.

displayException() method
public void displayException(Exception $exception)
$exception Exception the uncaught exception
Source Code: framework/base/CApplication.php#705 (show)
public function displayException($exception)
{
    if(
YII_DEBUG)
    {
        echo 
'<h1>'.get_class($exception)."</h1>\n";
        echo 
'<p>'.$exception->getMessage().' ('.$exception->getFile().':'.$exception->getLine().')</p>';
        echo 
'<pre>'.$exception->getTraceAsString().'</pre>';
    }
    else
    {
        echo 
'<h1>'.get_class($exception)."</h1>\n";
        echo 
'<p>'.$exception->getMessage().'</p>';
    }
}

Displays the uncaught PHP exception. This method displays the exception in HTML when there is no active error handler.

end() method
public void end(integer $status=0)
$status integer exit status (value 0 means normal exit while other values mean abnormal exit).
Source Code: framework/base/CApplication.php#146 (show)
public function end($status=0)
{
    if(
$this->hasEventHandler('onEndRequest'))
        
$this->onEndRequest(new CEvent($this));
    exit(
$status);
}

Terminates the application. This method replaces PHP's exit() function by calling onEndRequest before exiting.

findLocalizedFile() method
public string findLocalizedFile(string $srcFile, string $srcLanguage=NULL, string $language=NULL)
$srcFile string the original file
$srcLanguage string the language that the original file is in. If null, the application source language is used.
$language string the desired language that the file should be localized to. If null, the application language will be used.
{return} string the matching localized file. The original file is returned if no localized version is found or if source language is the same as the desired language.
Source Code: framework/base/CApplication.php#329 (show)
public function findLocalizedFile($srcFile,$srcLanguage=null,$language=null)
{
    if(
$srcLanguage===null)
        
$srcLanguage=$this->sourceLanguage;
    if(
$language===null)
        
$language=$this->getLanguage();
    if(
$language===$srcLanguage)
        return 
$srcFile;
    
$desiredFile=dirname($srcFile).DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.basename($srcFile);
    return 
is_file($desiredFile) ? $desiredFile $srcFile;
}

Returns the localized version of a specified file.

The searching is based on the specified language code. In particular, a file with the same name will be looked for under the subdirectory named as the locale ID. For example, given the file "path/to/view.php" and locale ID "zh_cn", the localized file will be looked for as "path/to/zh_cn/view.php". If the file is not found, the original file will be returned.

For consistency, it is recommended that the locale ID is given in lower case and in the format of LanguageID_RegionID (e.g. "en_us").

getBasePath() method
public string getBasePath()
{return} string the root directory of the application. Defaults to 'protected'.
Source Code: framework/base/CApplication.php#197 (show)
public function getBasePath()
{
    return 
$this->_basePath;
}

getCache() method
public CCache getCache()
{return} CCache the cache application component. Null if the component is not enabled.
Source Code: framework/base/CApplication.php#403 (show)
public function getCache()
{
    return 
$this->getComponent('cache');
}

getCoreMessages() method
public CPhpMessageSource getCoreMessages()
{return} CPhpMessageSource the core message translations
Source Code: framework/base/CApplication.php#411 (show)
public function getCoreMessages()
{
    return 
$this->getComponent('coreMessages');
}

getDateFormatter() method
public CDateFormatter getDateFormatter()
{return} CDateFormatter the locale-dependent date formatter. The current application locale will be used.
Source Code: framework/base/CApplication.php#363 (show)
public function getDateFormatter()
{
    return 
$this->getLocale()->getDateFormatter();
}

getDb() method
public CDbConnection getDb()
{return} CDbConnection the database connection
Source Code: framework/base/CApplication.php#371 (show)
public function getDb()
{
    return 
$this->getComponent('db');
}

getErrorHandler() method
public CErrorHandler getErrorHandler()
{return} CErrorHandler the error handler application component.
Source Code: framework/base/CApplication.php#379 (show)
public function getErrorHandler()
{
    return 
$this->getComponent('errorHandler');
}

getExtensionPath() method
public string getExtensionPath()
{return} string the directory that contains all extensions. Defaults to the 'extensions' directory under 'protected'.
Source Code: framework/base/CApplication.php#245 (show)
public function getExtensionPath()
{
    return 
Yii::getPathOfAlias('ext');
}

Returns the root directory that holds all third-party extensions.

getGlobalState() method
public mixed getGlobalState(string $key, mixed $defaultValue=NULL)
$key string the name of the value to be returned
$defaultValue mixed the default value. If the named global value is not found, this will be returned instead.
{return} mixed the named global value
Source Code: framework/base/CApplication.php#449 (show)
public function getGlobalState($key,$defaultValue=null)
{
    if(
$this->_globalState===null)
        
$this->loadGlobalState();
    if(isset(
$this->_globalState[$key]))
        return 
$this->_globalState[$key];
    else
        return 
$defaultValue;
}

Returns a global value.

A global value is one that is persistent across users sessions and requests.

See Also

getId() method
public string getId()
{return} string a unique identifier for the application.
Source Code: framework/base/CApplication.php#178 (show)
public function getId()
{
    if(
$this->_id!==null)
        return 
$this->_id;
    else
        return 
$this->_id=sprintf('%x',crc32($this->getBasePath().$this->name));
}

getLanguage() method
public string getLanguage()
{return} string the language that the user is using and the application should be targeted to. Defaults to the source language.
Source Code: framework/base/CApplication.php#265 (show)
public function getLanguage()
{
    return 
$this->_language===null $this->sourceLanguage $this->_language;
}

getLocale() method
public CLocale getLocale(string $localeID=NULL)
$localeID string locale ID (e.g. en_US). If null, the application language ID will be used.
{return} CLocale the locale instance
Source Code: framework/base/CApplication.php#345 (show)
public function getLocale($localeID=null)
{
    return 
CLocale::getInstance($localeID===null?$this->getLanguage():$localeID);
}

getMessages() method
public CMessageSource getMessages()
{return} CMessageSource the application message translations
Source Code: framework/base/CApplication.php#419 (show)
public function getMessages()
{
    return 
$this->getComponent('messages');
}

getNumberFormatter() method
public CNumberFormatter getNumberFormatter()
{return} CNumberFormatter the locale-dependent number formatter. The current application locale will be used.
Source Code: framework/base/CApplication.php#354 (show)
public function getNumberFormatter()
{
    return 
$this->getLocale()->getNumberFormatter();
}

getRequest() method
public CHttpRequest getRequest()
{return} CHttpRequest the request component
Source Code: framework/base/CApplication.php#427 (show)
public function getRequest()
{
    return 
$this->getComponent('request');
}

getRuntimePath() method
public string getRuntimePath()
{return} string the directory that stores runtime files. Defaults to 'protected/runtime'.
Source Code: framework/base/CApplication.php#218 (show)
public function getRuntimePath()
{
    if(
$this->_runtimePath!==null)
        return 
$this->_runtimePath;
    else
    {
        
$this->setRuntimePath($this->getBasePath().DIRECTORY_SEPARATOR.'runtime');
        return 
$this->_runtimePath;
    }
}

getSecurityManager() method
public CSecurityManager getSecurityManager()
{return} CSecurityManager the security manager application component.
Source Code: framework/base/CApplication.php#387 (show)
public function getSecurityManager()
{
    return 
$this->getComponent('securityManager');
}

getStatePersister() method
public CStatePersister getStatePersister()
{return} CStatePersister the state persister application component.
Source Code: framework/base/CApplication.php#395 (show)
public function getStatePersister()
{
    return 
$this->getComponent('statePersister');
}

getTimeZone() method (available since v1.0.9)
public string getTimeZone()
{return} string the time zone used by this application.
Source Code: framework/base/CApplication.php#293 (show)
public function getTimeZone()
{
    return 
date_default_timezone_get();
}

Returns the time zone used by this application. This is a simple wrapper of PHP function date_default_timezone_get().

getUrlManager() method
public CUrlManager getUrlManager()
{return} CUrlManager the URL manager component
Source Code: framework/base/CApplication.php#435 (show)
public function getUrlManager()
{
    return 
$this->getComponent('urlManager');
}

handleError() method
public void handleError(integer $code, string $message, string $file, integer $line)
$code integer the level of the error raised
$message string the error message
$file string the filename that the error was raised in
$line integer the line number the error was raised at
Source Code: framework/base/CApplication.php#592 (show)
public function handleError($code,$message,$file,$line)
{
    if(
$code error_reporting())
    {
        
// disable error capturing to avoid recursive errors
        
restore_error_handler();
        
restore_exception_handler();

        
$log="$message ($file:$line)\nStack trace:\n";
        
$trace=debug_backtrace();
        
// skip the first 3 stacks as they do not tell the error position
        
if(count($trace)>3)
            
$trace=array_slice($trace,3);
        foreach(
$trace as $i=>$t)
        {
            if(!isset(
$t['file']))
                
$t['file']='unknown';
            if(!isset(
$t['line']))
                
$t['line']=0;
            if(!isset(
$t['function']))
                
$t['function']='unknown';
            
$log.="#$i {$t['file']}({$t['line']}): ";
            if(isset(
$t['object']) && is_object($t['object']))
                
$log.=get_class($t['object']).'->';
            
$log.="{$t['function']}()\n";
        }
        if(isset(
$_SERVER['REQUEST_URI']))
            
$log.='REQUEST_URI='.$_SERVER['REQUEST_URI'];
        
Yii::log($log,CLogger::LEVEL_ERROR,'php');

        try
        {
            
$event=new CErrorEvent($this,$code,$message,$file,$line);
            
$this->onError($event);
            if(!
$event->handled)
            {
                
// try an error handler
                
if(($handler=$this->getErrorHandler())!==null)
                    
$handler->handle($event);
                else
                    
$this->displayError($code,$message,$file,$line);
            }
        }
        catch(
Exception $e)
        {
            
$this->displayException($e);
        }
        
$this->end(1);
    }
}

Handles PHP execution errors such as warnings, notices.

This method is implemented as a PHP error handler. It requires that constant YII_ENABLE_ERROR_HANDLER be defined true.

This method will first raise an onError event. If the error is not handled by any event handler, it will call errorHandler to process the error.

The application will be terminated by this method.

handleException() method
public void handleException(Exception $exception)
$exception Exception exception that is not caught
Source Code: framework/base/CApplication.php#540 (show)
public function handleException($exception)
{
    
// disable error capturing to avoid recursive errors
    
restore_error_handler();
    
restore_exception_handler();

    
$category='exception.'.get_class($exception);
    if(
$exception instanceof CHttpException)
        
$category.='.'.$exception->statusCode;
    
// php <5.2 doesn't support string conversion auto-magically
    
$message=$exception->__toString();
    if(isset(
$_SERVER['REQUEST_URI']))
        
$message.=' REQUEST_URI='.$_SERVER['REQUEST_URI'];
    
Yii::log($message,CLogger::LEVEL_ERROR,$category);

    try
    {
        
$event=new CExceptionEvent($this,$exception);
        
$this->onException($event);
        if(!
$event->handled)
        {
            
// try an error handler
            
if(($handler=$this->getErrorHandler())!==null)
                
$handler->handle($event);
            else
                
$this->displayException($exception);
        }
    }
    catch(
Exception $e)
    {
        
$this->displayException($e);
    }
    
$this->end(1);
}

Handles uncaught PHP exceptions.

This method is implemented as a PHP exception handler. It requires that constant YII_ENABLE_EXCEPTION_HANDLER be defined true.

This method will first raise an onException event. If the exception is not handled by any event handler, it will call errorHandler to process the exception.

The application will be terminated by this method.

initSystemHandlers() method
protected void initSystemHandlers()
Source Code: framework/base/CApplication.php#723 (show)
protected function initSystemHandlers()
{
    if(
YII_ENABLE_EXCEPTION_HANDLER)
        
set_exception_handler(array($this,'handleException'));
    if(
YII_ENABLE_ERROR_HANDLER)
        
set_error_handler(array($this,'handleError'),error_reporting());
}

Initializes the class autoloader and error handlers.

loadGlobalState() method
protected void loadGlobalState()
Source Code: framework/base/CApplication.php#502 (show)
protected function loadGlobalState()
{
    
$persister=$this->getStatePersister();
    if((
$this->_globalState=$persister->load())===null)
        
$this->_globalState=array();
    
$this->_stateChanged=false;
    
$this->attachEventHandler('onEndRequest',array($this,'saveGlobalState'));
}

Loads the global state data from persistent storage.

onBeginRequest() method
public void onBeginRequest(CEvent $event)
$event CEvent the event parameter
Source Code: framework/base/CApplication.php#157 (show)
public function onBeginRequest($event)
{
    
$this->raiseEvent('onBeginRequest',$event);
}

Raised right BEFORE the application processes the request.

onEndRequest() method
public void onEndRequest(CEvent $event)
$event CEvent the event parameter
Source Code: framework/base/CApplication.php#166 (show)
public function onEndRequest($event)
{
    if(!
$this->_ended)
    {
        
$this->_ended=true;
        
$this->raiseEvent('onEndRequest',$event);
    }
}

Raised right AFTER the application processes the request.

onError() method
public void onError(CErrorEvent $event)
$event CErrorEvent event parameter
Source Code: framework/base/CApplication.php#668 (show)
public function onError($event)
{
    
$this->raiseEvent('onError',$event);
}

Raised when a PHP execution error occurs.

An event handler can set the handled property of the event parameter to be true to indicate no further error handling is needed. Otherwise, the errorHandler application component will continue processing the error.

onException() method
public void onException(CExceptionEvent $event)
$event CExceptionEvent event parameter
Source Code: framework/base/CApplication.php#653 (show)
public function onException($event)
{
    
$this->raiseEvent('onException',$event);
}

Raised when an uncaught PHP exception occurs.

An event handler can set the handled property of the event parameter to be true to indicate no further error handling is needed. Otherwise, the errorHandler application component will continue processing the error.

processRequest() method
abstract public void processRequest()
Source Code: framework/base/CApplication.php#83 (show)
abstract public function processRequest();

Processes the request. This is the place where the actual request processing work is done. Derived classes should override this method.

registerCoreComponents() method
protected void registerCoreComponents()
Source Code: framework/base/CApplication.php#735 (show)
protected function registerCoreComponents()
{
    
$components=array(
        
'coreMessages'=>array(
            
'class'=>'CPhpMessageSource',
            
'language'=>'en_us',
            
'basePath'=>YII_PATH.DIRECTORY_SEPARATOR.'messages',
        ),
        
'db'=>array(
            
'class'=>'CDbConnection',
        ),
        
'messages'=>array(
            
'class'=>'CPhpMessageSource',
        ),
        
'errorHandler'=>array(
            
'class'=>'CErrorHandler',
        ),
        
'securityManager'=>array(
            
'class'=>'CSecurityManager',
        ),
        
'statePersister'=>array(
            
'class'=>'CStatePersister',
        ),
        
'urlManager'=>array(
            
'class'=>'CUrlManager',
        ),
        
'request'=>array(
            
'class'=>'CHttpRequest',
        ),
    );

    
$this->setComponents($components);
}

Registers the core application components.

See Also

run() method
public void run()
Source Code: framework/base/CApplication.php#131 (show)
public function run()
{
    if(
$this->hasEventHandler('onBeginRequest'))
        
$this->onBeginRequest(new CEvent($this));
    
$this->processRequest();
    if(
$this->hasEventHandler('onEndRequest'))
        
$this->onEndRequest(new CEvent($this));
}

Runs the application. This method loads static application components. Derived classes usually overrides this method to do more application-specific tasks. Remember to call the parent implementation so that static application components are loaded.

saveGlobalState() method
protected void saveGlobalState()
Source Code: framework/base/CApplication.php#516 (show)
protected function saveGlobalState()
{
    if(
$this->_stateChanged)
    {
        
$persister=$this->getStatePersister();
        
$this->_stateChanged=false;
        
$persister->save($this->_globalState);
    }
}

Saves the global state data into persistent storage.

setBasePath() method
public void setBasePath(string $path)
$path string the root directory of the application.
Source Code: framework/base/CApplication.php#208 (show)
public function setBasePath($path)
{
    if((
$this->_basePath=realpath($path))===false || !is_dir($this->_basePath))
        throw new 
CException(Yii::t('yii','Application base path "{path}" is not a valid directory.',
            array(
'{path}'=>$path)));
}

Sets the root directory of the application. This method can only be invoked at the begin of the constructor.

setExtensionPath() method
public void setExtensionPath(string $path)
$path string the directory that contains all third-party extensions.
Source Code: framework/base/CApplication.php#253 (show)
public function setExtensionPath($path)
{
    if((
$extensionPath=realpath($path))===false || !is_dir($extensionPath))
        throw new 
CException(Yii::t('yii','Extension path "{path}" does not exist.',
            array(
'{path}'=>$path)));
    
Yii::setPathOfAlias('ext',$extensionPath);
}

setGlobalState() method
public void setGlobalState(string $key, mixed $value, mixed $defaultValue=NULL)
$key string the name of the value to be saved
$value mixed the global value to be saved. It must be serializable.
$defaultValue mixed the default value. If the named global value is the same as this value, it will be cleared from the current storage.
Source Code: framework/base/CApplication.php#469 (show)
public function setGlobalState($key,$value,$defaultValue=null)
{
    if(
$this->_globalState===null)
        
$this->loadGlobalState();
    
$this->_stateChanged=true;
    if(
$value===$defaultValue)
        unset(
$this->_globalState[$key]);
    else
        
$this->_globalState[$key]=$value;
}

Sets a global value.

A global value is one that is persistent across users sessions and requests. Make sure that the value is serializable and unserializable.

See Also

setId() method
public void setId(string $id)
$id string a unique identifier for the application.
Source Code: framework/base/CApplication.php#189 (show)
public function setId($id)
{
    
$this->_id=$id;
}

setLanguage() method
public void setLanguage(string $language)
$language string the user language (e.g. 'en_US', 'zh_CN'). If it is null, the sourceLanguage will be used.
Source Code: framework/base/CApplication.php#281 (show)
public function setLanguage($language)
{
    
$this->_language=$language;
}

Specifies which language the application is targeted to.

This is the language that the application displays to end users. If set null, it uses the source language.

Unless your application needs to support multiple languages, you should always set this language to null to maximize the application's performance.

setRuntimePath() method
public void setRuntimePath(string $path)
$path string the directory that stores runtime files.
Source Code: framework/base/CApplication.php#233 (show)
public function setRuntimePath($path)
{
    if((
$runtimePath=realpath($path))===false || !is_dir($runtimePath) || !is_writable($runtimePath))
        throw new 
CException(Yii::t('yii','Application runtime path "{path}" is not valid. Please make sure it is a directory writable by the Web server process.',
            array(
'{path}'=>$path)));
    
$this->_runtimePath=$runtimePath;
}

setTimeZone() method (available since v1.0.9)
public void setTimeZone(string $value)
$value string the time zone used by this application.
Source Code: framework/base/CApplication.php#305 (show)
public function setTimeZone($value)
{
    
date_default_timezone_set($value);
}

Sets the time zone used by this application. This is a simple wrapper of PHP function date_default_timezone_set().