CWebApplication
包 | system.web |
---|---|
继承 | class CWebApplication » CApplication » CModule » CComponent |
可用自 | 1.0 |
版本 | $Id$ |
CWebApplication manages the controllers in MVC pattern, and provides the following additional core application components:
- urlManager: provides URL parsing and constructing functionality;
- request: encapsulates the Web request information;
- session: provides the session-related functionalities;
- assetManager: manages the publishing of private asset files.
- user: represents the user session information.
- themeManager: manages themes.
- authManager: manages role-based access control (RBAC).
- clientScript: manages client scripts (javascripts and CSS).
User requests are resolved as controller-action pairs and additional parameters. CWebApplication creates the requested controller instance and let it to handle the actual user request. If the user does not specify controller ID, it will assume defaultController is requested (which defaults to 'site').
Controller class files must reside under the directory controllerPath (defaults to 'protected/controllers'). The file name is the same as the controller name and the class name is the controller ID appended with 'Controller'. For example, the controller 'article' is defined by the class 'ArticleController' which is in the file 'protected/controller/article.php'.
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
assetManager | CAssetManager | the asset manager component | CWebApplication |
authManager | IAuthManager | the authorization manager component | CWebApplication |
basePath | string | the root directory of the application. | CApplication |
baseUrl | string | Returns the relative URL for the application. | CWebApplication |
behaviors | array | the behaviors that should be attached to the module. | CModule |
cache | CCache | the cache application component. | CApplication |
catchAllRequest | array | the configuration specifying a controller which should handle all user requests. | CWebApplication |
charset | string | the charset currently used for the application. | CApplication |
clientScript | CClientScript | Returns the client script manager. | CWebApplication |
components | array | the currently loaded components (indexed by their IDs) | CModule |
controller | CController | the currently active controller | CWebApplication |
controllerMap | array | mapping from controller ID to controller configurations. | CWebApplication |
controllerPath | string | the directory that contains the controller classes. | CWebApplication |
coreMessages | CPhpMessageSource | the core message translations | CApplication |
dateFormatter | CDateFormatter | the locale-dependent date formatter. | CApplication |
db | CDbConnection | the database connection | CApplication |
defaultController | string | the ID of the default controller. | CWebApplication |
errorHandler | CErrorHandler | the error handler application component. | CApplication |
extensionPath | string | Returns the root directory that holds all third-party extensions. | CApplication |
homeUrl | string | the homepage URL | CWebApplication |
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 |
layout | mixed | the application-wide layout. | CWebApplication |
layoutPath | string | the root directory of layout files. | CWebApplication |
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 |
session | CHttpSession | the session component | CWebApplication |
sourceLanguage | string | the language that the application is written in. | CApplication |
statePersister | CStatePersister | the state persister application component. | CApplication |
systemViewPath | string | the root directory of system view files. | CWebApplication |
theme | CTheme | the theme used currently. | CWebApplication |
themeManager | CThemeManager | the theme manager. | CWebApplication |
timeZone | string | Returns the time zone used by this application. | CApplication |
urlManager | CUrlManager | the URL manager component | CApplication |
user | CWebUser | the user session information | CWebApplication |
viewPath | string | the root directory of view files. | CWebApplication |
viewRenderer | IViewRenderer | Returns the view renderer. | CWebApplication |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__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 |
afterControllerAction() | The post-filter for controller actions. | CWebApplication |
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 |
beforeControllerAction() | The pre-filter for controller actions. | CWebApplication |
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 |
createAbsoluteUrl() | Creates an absolute URL based on the given controller and action information. | CWebApplication |
createController() | Creates a controller instance based on a route. | CWebApplication |
createUrl() | Creates a relative URL based on the given controller and action information. | CWebApplication |
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 |
findModule() | Searches for a module by its ID. | CWebApplication |
getAssetManager() | CWebApplication | |
getAuthManager() | CWebApplication | |
getBasePath() | CApplication | |
getBaseUrl() | Returns the relative URL for the application. | CWebApplication |
getCache() | CApplication | |
getClientScript() | Returns the client script manager. | CWebApplication |
getComponent() | Retrieves the named application component. | CModule |
getComponents() | CModule | |
getController() | CWebApplication | |
getControllerPath() | CWebApplication | |
getCoreMessages() | CApplication | |
getDateFormatter() | CApplication | |
getDb() | CApplication | |
getErrorHandler() | 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 |
getHomeUrl() | CWebApplication | |
getId() | CApplication | |
getLanguage() | CApplication | |
getLayoutPath() | CWebApplication | |
getLocale() | CApplication | |
getMessages() | CApplication | |
getModule() | Retrieves the named application module. | CModule |
getModulePath() | CModule | |
getModules() | CModule | |
getNumberFormatter() | CApplication | |
getParams() | CModule | |
getParentModule() | CModule | |
getRequest() | CApplication | |
getRuntimePath() | CApplication | |
getSecurityManager() | CApplication | |
getSession() | CWebApplication | |
getStatePersister() | CApplication | |
getSystemViewPath() | CWebApplication | |
getTheme() | CWebApplication | |
getThemeManager() | CWebApplication | |
getTimeZone() | Returns the time zone used by this application. | CApplication |
getUrlManager() | CApplication | |
getUser() | CWebApplication | |
getViewPath() | CWebApplication | |
getViewRenderer() | Returns the view renderer. | CWebApplication |
handleError() | Handles PHP execution errors such as warnings, notices. | CApplication |
handleException() | Handles uncaught PHP exceptions. | CApplication |
hasComponent() | 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 current request. | CWebApplication |
raiseEvent() | Raises an event. | CComponent |
run() | Runs the application. | CApplication |
runController() | Creates the controller and performs the specified action. | CWebApplication |
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 |
setController() | CWebApplication | |
setControllerPath() | CWebApplication | |
setExtensionPath() | CApplication | |
setGlobalState() | Sets a global value. | CApplication |
setHomeUrl() | CWebApplication | |
setId() | CApplication | |
setImport() | Sets the aliases that are used in the module. | CModule |
setLanguage() | Specifies which language the application is targeted to. | CApplication |
setLayoutPath() | CWebApplication | |
setModulePath() | CModule | |
setModules() | Configures the sub-modules of this module. | CModule |
setParams() | CModule | |
setRuntimePath() | CApplication | |
setSystemViewPath() | CWebApplication | |
setTheme() | CWebApplication | |
setTimeZone() | Sets the time zone used by this application. | CApplication |
setViewPath() | CWebApplication |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
init() | Initializes the application. | CWebApplication |
initSystemHandlers() | Initializes the class autoloader and error handlers. | CApplication |
loadGlobalState() | Loads the global state data from persistent storage. | CApplication |
parseActionParams() | Parses a path info into an action ID and GET variables. | CWebApplication |
preinit() | Preinitializes the module. | CModule |
preloadComponents() | Loads static application components. | CModule |
registerCoreComponents() | Registers the core application components. | CWebApplication |
saveGlobalState() | Saves the global state data into persistent storage. | CApplication |
事件
事件 | 描述 | 被定义在 |
---|---|---|
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 |
属性详情
the asset manager component
the authorization manager component
Returns the relative URL for the application. This is a shortcut method to CHttpRequest::getBaseUrl().
the configuration specifying a controller which should handle all user requests. This is mainly used when the application is in maintenance mode and we should use a controller to handle all incoming requests. The configuration specifies the controller route (the first element) and GET parameters (the rest name-value pairs). For example,
array( 'offline/notice', 'param1'=>'value1', 'param2'=>'value2', )Defaults to null, meaning catch-all is not effective.
Returns the client script manager.
the currently active controller
mapping from controller ID to controller configurations. Each name-value pair specifies the configuration for a single controller. A controller configuration can be either a string or an array. If the former, the string should be the class name or class path alias of the controller. If the latter, the array must contain a 'class' element which specifies the controller's class name or class path alias. The rest name-value pairs in the array are used to initialize the corresponding controller properties. For example,
array( 'post'=>array( 'class'=>'path.to.PostController', 'pageTitle'=>'something new', ), 'user'=>'path.to.UserController',, )
Note, when processing an incoming request, the controller map will first be checked to see if the request can be handled by one of the controllers in the map. If not, a controller will be searched for under the default controller path.
the directory that contains the controller classes. Defaults to 'protected/controllers'.
the ID of the default controller. Defaults to 'site'.
the homepage URL
the application-wide layout. Defaults to 'main' (relative to layoutPath). If this is false, then no layout will be used.
the root directory of layout files. Defaults to 'protected/views/layouts'.
the session component
the root directory of system view files. Defaults to 'protected/views/system'.
the theme used currently. Null if no theme is being used.
the theme manager.
the user session information
the root directory of view files. Defaults to 'protected/views'.
Returns the view renderer. If this component is registered and enabled, the default view rendering logic defined in CBaseController will be replaced by this renderer.
方法详情
public void afterControllerAction(CController $controller, CAction $action)
| ||
$controller | CController | the controller |
$action | CAction | the action |
The post-filter for controller actions. This method is invoked after the currently requested controller action and all its filters are executed. You may override this method with logic that needs to be done after all controller actions.
public boolean beforeControllerAction(CController $controller, CAction $action)
| ||
$controller | CController | the controller |
$action | CAction | the action |
{return} | boolean | whether the action should be executed. |
The pre-filter for controller actions. This method is invoked before the currently requested controller action and all its filters are executed. You may override this method with logic that needs to be done before all controller actions.
public string createAbsoluteUrl(string $route, array $params=array (
), string $schema='', string $ampersand='&')
| ||
$route | string | the URL route. This should be in the format of 'ControllerID/ActionID'. |
$params | array | additional GET parameters (name=>value). Both the name and value will be URL-encoded. |
$schema | string | schema to use (e.g. http, https). If empty, the schema used for the current request will be used. |
$ampersand | string | the token separating name-value pairs in the URL. |
{return} | string | the constructed URL |
Creates an absolute URL based on the given controller and action information.
public array createController(string $route, CWebModule $owner=NULL)
| ||
$route | string | the route of the request. |
$owner | CWebModule | the module that the new controller will belong to. Defaults to null, meaning the application instance is the owner. |
{return} | array | the controller instance and the action ID. Null if the controller class does not exist or the route is invalid. |
Creates a controller instance based on a route.
The route should contain the controller ID and the action ID.
It may also contain additional GET variables. All these must be concatenated together with slashes.
This method will attempt to create a controller in the following order:
- If the first segment is found in controllerMap, the corresponding controller configuration will be used to create the controller;
- If the first segment is found to be a module ID, the corresponding module will be used to create the controller;
- Otherwise, it will search under the controllerPath to create the corresponding controller. For example, if the route is "admin/user/create", then the controller will be created using the class file "protected/controllers/admin/UserController.php".
public string createUrl(string $route, array $params=array (
), string $ampersand='&')
| ||
$route | string | the URL route. This should be in the format of 'ControllerID/ActionID'. |
$params | array | additional GET parameters (name=>value). Both the name and value will be URL-encoded. |
$ampersand | string | the token separating name-value pairs in the URL. |
{return} | string | the constructed URL |
Creates a relative URL based on the given controller and action information.
public CWebModule findModule(string $id)
| ||
$id | string | module ID |
{return} | CWebModule | the module that has the specified ID. Null if no module is found. |
Searches for a module by its ID. This method is used internally. Do not call this method.
public CAssetManager getAssetManager()
| ||
{return} | CAssetManager | the asset manager component |
public IAuthManager getAuthManager()
| ||
{return} | IAuthManager | the authorization manager component |
public string getBaseUrl(boolean $absolute=false)
| ||
$absolute | boolean | whether to return an absolute URL. Defaults to false, meaning returning a relative one. This parameter has been available since 1.0.2. |
{return} | string | the relative URL for the application |
Returns the relative URL for the application. This is a shortcut method to CHttpRequest::getBaseUrl().
public CClientScript getClientScript()
| ||
{return} | CClientScript | the client script manager |
Returns the client script manager.
public CController getController()
| ||
{return} | CController | the currently active controller |
public string getControllerPath()
| ||
{return} | string | the directory that contains the controller classes. Defaults to 'protected/controllers'. |
public string getHomeUrl()
| ||
{return} | string | the homepage URL |
public string getLayoutPath()
| ||
{return} | string | the root directory of layout files. Defaults to 'protected/views/layouts'. |
public CHttpSession getSession()
| ||
{return} | CHttpSession | the session component |
public string getSystemViewPath()
| ||
{return} | string | the root directory of system view files. Defaults to 'protected/views/system'. |
public CTheme getTheme()
| ||
{return} | CTheme | the theme used currently. Null if no theme is being used. |
public CThemeManager getThemeManager()
| ||
{return} | CThemeManager | the theme manager. |
public CWebUser getUser()
| ||
{return} | CWebUser | the user session information |
public string getViewPath()
| ||
{return} | string | the root directory of view files. Defaults to 'protected/views'. |
public IViewRenderer getViewRenderer()
| ||
{return} | IViewRenderer | the view renderer. |
Returns the view renderer. If this component is registered and enabled, the default view rendering logic defined in CBaseController will be replaced by this renderer.
protected void init()
|
Initializes the application. This method overrides the parent implementation by preloading the 'request' component.
protected string parseActionParams(string $pathInfo)
| ||
$pathInfo | string | path info |
{return} | string | action ID |
Parses a path info into an action ID and GET variables.
public void processRequest()
|
Processes the current request. It first resolves the request into controller and action, and then creates the controller to perform the action.
protected void registerCoreComponents()
|
Registers the core application components. This method overrides the parent implementation by registering additional core components.
public void runController(string $route)
| ||
$route | string | the route of the current request. See createController for more details. |
Creates the controller and performs the specified action.
public void setController(CController $value)
| ||
$value | CController | the currently active controller |
public void setControllerPath(string $value)
| ||
$value | string | the directory that contains the controller classes. |
public void setHomeUrl(string $value)
| ||
$value | string | the homepage URL |
public void setLayoutPath(string $path)
| ||
$path | string | the root directory of layout files. |
public void setSystemViewPath(string $path)
| ||
$path | string | the root directory of system view files. |
public void setTheme(string $value)
| ||
$value | string | the theme name |
public void setViewPath(string $path)
| ||
$path | string | the root directory of view files. |