Abstract Class yii\base\Application

继承yii\base\Application » yii\base\Module » yii\di\ServiceLocator » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable
子类yii\console\Application, yii\web\Application
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/base/Application.php

Application 是所有应用程序类的基类.

有关 Application 的更多详细信息和使用信息, 请参阅 权威指南 - 应用结构 - 应用(Applications).

公共属性

隐藏继承的属性

属性类型描述定义在
$aliases array 要定义的路径别名列表. 数组键是别名(必须以@开头), 数组值是相应的路径或别名. 有关示例, 请参阅 setAliases(). 该属性是只写的. yii\base\Module
$assetManager yii\web\AssetManager 应用程序的资源管理器(assetManager)组件. 该属性是只读的. yii\base\Application
$authManager yii\rbac\ManagerInterface 应用程序的身份验证管理器(权限管理, authManager)组件. 如果未配置身份验证管理器, 则返回Null值. 该属性是只读的. yii\base\Application
$basePath string 应用程序的根目录. yii\base\Application
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$bootstrap array 在应用程序 引导进程 中应该运行的组件列表. yii\base\Application
$cache yii\caching\CacheInterface 应用程序的缓存(cache)组件. 如果组件未启用, 则为Null. 该属性是只读的. yii\base\Application
$charset string 当前应用程序使用的字符集. yii\base\Application
$components array 组件定义列表或已加载的组件实例(ID => 定义或实例). yii\di\ServiceLocator
$container array 以 name-value 对的形式给出的值. 该属性是只写的. yii\base\Application
$controller yii\base\Controller 当前活动的控制器实例. yii\base\Application
$controllerMap array 从控制器ID映射到控制器配置. yii\base\Module
$controllerNamespace string 控制器类所在的命名空间. yii\base\Application
$controllerPath string 包含控制器类的目录. 该属性是只读的. yii\base\Module
$db yii\db\Connection 数据库连接配置. 该属性是只读的. yii\base\Application
$defaultRoute string 该模块的默认路由. yii\base\Module
$errorHandler yii\web\ErrorHandler|yii\console\ErrorHandler 应用程序的错误处理(errorHandler)组件. 该属性是只读的. yii\base\Application
$extensions array 已安装的 Yii 扩展列表. yii\base\Application
$formatter yii\i18n\Formatter 应用程序的格式化(formatter)组件. 该属性是只读的. yii\base\Application
$i18n yii\i18n\I18N 应用程序的国际化(i18n)组件. 该属性是只读的. yii\base\Application
$id string 在具有相同 父类 的其它模块中唯一标识该模块的ID. yii\base\Module
$language string 用于最终用户的语言. yii\base\Application
$layout string|boolean 在此应用程序中应该应用于视图的布局. yii\base\Application
$layoutPath string 布局文件的根目录. 默认为[[viewPath]]/layouts. yii\base\Module
$loadedModules array 通过其类名称索引的已加载模块列表. yii\base\Application
$log yii\log\Dispatcher 应用程序的日志(log)组件. 该属性是只读的. yii\base\Application
$mailer yii\mail\MailerInterface 应用程序的邮件(mailer)组件. 该属性是只读的. yii\base\Application
$module yii\base\Module 该模块的父模块. yii\base\Module
$modules array 模块(由其 ID 索引). yii\base\Module
$name string 应用程序的名称. yii\base\Application
$params array 自定义模块参数(name => value). yii\base\Module
$request yii\web\Request|yii\console\Request 请求(request)组件. 该属性是只读的. yii\base\Application
$requestedAction yii\base\Action 请求的动作. yii\base\Application
$requestedParams array 提供给请求动作的参数. yii\base\Application
$requestedRoute string 请求的路由. yii\base\Application
$response yii\web\Response|yii\console\Response 响应(response)组件. 该属性是只读的. yii\base\Application
$runtimePath string 存储临时文件(eg: 日志文件, 缓存文件等)的目录. 默认为 $basePath 下的runtime子目录. yii\base\Application
$security yii\base\Security 应用程序的安全(security)组件. 该属性是只读的. yii\base\Application
$sourceLanguage string 应用程序所使用的语言. yii\base\Application
$state integer 请求处理生命周期中的当前应用程序状态. yii\base\Application
$timeZone string 该应用程序使用的时区. yii\base\Application
$uniqueId string 模块的唯一 ID. 该属性是只读的. yii\base\Application
$urlManager yii\web\UrlManager 此应用程序的 URL 管理器. 该属性是只读的. yii\base\Application
$vendorPath string 存储供应商文件的目录. 默认为 $basePath 下的vendor目录. yii\base\Application
$version string 该模块的版本. 请注意, 该属性的类型在 getter 和 setter 中有所不同. 有关详细信息, 请参阅 getVersion()setVersion(). yii\base\Module
$view yii\base\View|yii\web\View 应用程序用于渲染各种视图文件的视图(view)组件. 该属性是只读的. yii\base\Application
$viewPath string 视图文件的根目录. 默认为[[basePath]]/views. yii\base\Module

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\Application
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
afterAction() 在执行此模块中的动作之后立即调用此方法. yii\base\Module
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
beforeAction() 在执行此模块中的动作之前调用此方法. yii\base\Module
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
clear() 从定位器中移除组件. yii\di\ServiceLocator
coreComponents() 返回核心应用程序组件的配置. yii\base\Application
createController() 根据给定的路由创建一个控制器实例. yii\base\Module
createControllerByID() 根据给定的控制器ID创建一个控制器. yii\base\Module
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
end() 终止应用程序. yii\base\Application
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
get() 返回具有指定ID的组件实例. yii\base\Module
getAssetManager() 返回资源管理器(assetManager)组件. yii\base\Application
getAuthManager() 返回此应用程序的身份验证管理器(权限管理, authManager)组件. yii\base\Application
getBasePath() 返回模块的根目录. yii\base\Module
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getCache() 返回缓存(cache)组件. yii\base\Application
getComponents() 返回组件定义列表或已加载组件的实例. yii\di\ServiceLocator
getControllerPath() 根据 $controllerNamespace 返回包含控制器类的目录. yii\base\Module
getDb() 返回数据库连接组件. yii\base\Application
getErrorHandler() 返回错误处理(errorHandler)组件. yii\base\Application
getFormatter() 返回格式化(formatter)组件. yii\base\Application
getI18n() 返回国际化(i18n)组件. yii\base\Application
getInstance() 返回此模块类当前请求的实例. yii\base\Module
getLayoutPath() 返回包含此模块的布局视图文件的目录. yii\base\Module
getLog() 返回日志(log)组件. yii\base\Application
getMailer() 返回邮件(mailer)组件. yii\base\Application
getModule() 检索指定标识的子模块. yii\base\Module
getModules() 返回此模块中的子模块 yii\base\Module
getRequest() 返回请求(request)组件. yii\base\Application
getResponse() 返回响应(response)组件. yii\base\Application
getRuntimePath() 返回存储临时文件(eg: 日志文件, 缓存文件等)的目录. yii\base\Application
getSecurity() 返回安全(security)组件. yii\base\Application
getTimeZone() 返回此应用程序使用的时区. yii\base\Application
getUniqueId() 返回当前应用程序所有模块中唯一标识此模块的ID. yii\base\Application
getUrlManager() 返回此应用程序的 URL 管理器. yii\base\Application
getVendorPath() 返回存储供应商文件的目录. yii\base\Application
getVersion() 返回当前模块的版本. yii\base\Module
getView() 返回视图对象. yii\base\Application
getViewPath() 返回包含此模块的视图文件的目录. yii\base\Module
handleRequest() 处理指定的请求. yii\base\Application
has() 返回一个值, 指示定位器是否具有指定的组件定义或是否已实例化该组件. yii\base\Module
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasModule() 检查是否存在指定ID的子模块. yii\base\Module
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化模块. yii\base\Application
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
preInit() 预初始化应用程序. yii\base\Application
run() 运行应用程序. yii\base\Application
runAction() 运行路由指定的控制器动作. yii\base\Module
set() 使用此定位器注册组件定义. yii\di\ServiceLocator
setAliases() 定义路径别名. yii\base\Module
setBasePath() 设置应用程序的根目录和@app别名. yii\base\Application
setComponents() 在此定位器中注册一组组件定义. yii\di\ServiceLocator
setContainer() 使用 $config 配置 Yii::$container. yii\base\Application
setInstance() 设置此模块类的当前请求的实例. yii\base\Module
setLayoutPath() 设置包含布局文件的目录. yii\base\Module
setModule() 为此模块添加一个子模块. yii\base\Module
setModules() 在当前模块中注册子模块. yii\base\Module
setRuntimePath() 设置存储临时文件(eg: 日志文件, 缓存文件等)的目录. yii\base\Application
setTimeZone() 设置此应用程序使用的时区. yii\base\Application
setVendorPath() 设置存储供应商文件的目录. yii\base\Application
setVersion() 设置当前模块的版本. yii\base\Module
setViewPath() 设置包含视图文件的目录. yii\base\Module
trigger() 触发事件. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述定义在
bootstrap() 初始化扩展并执行引导组件. yii\base\Application
defaultVersion() 返回模块的默认版本. yii\base\Module
registerErrorHandler() errorHandler组件注册为 PHP 错误处理程序. yii\base\Application

事件

隐藏继承的事件

事件类型描述定义在
EVENT_AFTER_ACTION yii\base\ActionEvent 在执行控制器操作之后发生的事件. yii\base\Module
EVENT_AFTER_REQUEST yii\base\Event 在应用程序成功处理请求(发送响应之前)之后引发的事件. yii\base\Application
EVENT_BEFORE_ACTION yii\base\ActionEvent 在执行控制器操作之前发生的事件. yii\base\Module
EVENT_BEFORE_REQUEST yii\base\Event 在应用程序开始处理请求之前引发的事件. yii\base\Application

常量

隐藏继承的常量

常量描述定义在
STATE_AFTER_REQUEST 4 $state 使用的应用程序状态: 应用程序正在触发 EVENT_AFTER_REQUEST. . yii\base\Application
STATE_BEFORE_REQUEST 2 $state 使用的应用程序状态: 应用程序正在触发 EVENT_BEFORE_REQUEST. yii\base\Application
STATE_BEGIN 0 $state 使用的应用程序状态: 应用程序刚刚启动. yii\base\Application
STATE_END 6 $state 使用的应用程序状态: 应用程序已结束. yii\base\Application
STATE_HANDLING_REQUEST 3 $state 使用的应用程序状态: 应用程序正在处理请求. yii\base\Application
STATE_INIT 1 $state 使用的应用程序状态: 应用程序正在初始化. yii\base\Application
STATE_SENDING_RESPONSE 5 $state 使用的应用程序状态: 应用程序即将发送响应. yii\base\Application

属性详情

$assetManager public 属性

应用程序的资源管理器(assetManager)组件. 该属性是只读的.

$authManager public 属性

应用程序的身份验证管理器(权限管理, authManager)组件. 如果未配置身份验证管理器, 则返回Null值. 该属性是只读的.

$basePath public 属性

应用程序的根目录.

public string $basePath null
$bootstrap public 属性

在应用程序 引导进程 中应该运行的组件列表.

每个组件可以用以下格式之一来指定:

  • 通过 $components 指定的应用程序组件 ID.
  • 通过 $modules 指定的模块 ID.
  • 一个类名.
  • 一个配置数组.
  • a Closure

在引导进程中, 将实例化每个组件. 如果组件类实现了 yii\base\BootstrapInterface, 则将调用其 bootstrap() 方法.

public array $bootstrap = []
$cache public 属性

应用程序的缓存(cache)组件. 如果组件未启用, 则为Null. 该属性是只读的.

$charset public 属性

当前应用程序使用的字符集.

public string $charset 'UTF-8'
$container public 属性

以 name-value 对的形式给出的值. 该属性是只写的.

public array $container null
$controller public 属性

当前活动的控制器实例.

$controllerNamespace public 属性

控制器类所在的命名空间.

该命名空间将通过在控制器类名称之前添加来加载控制器类. 默认的命名空间是app\controllers.

有关更多详细信息, 请参阅 权威指南 - 关键概念 - 类自动加载(Class Autoloading).

public string $controllerNamespace 'app\\controllers'
$db public 属性

数据库连接配置. 该属性是只读的.

public yii\db\Connection $db null
$errorHandler public 属性

应用程序的错误处理(errorHandler)组件. 该属性是只读的.

$extensions public 属性

已安装的 Yii 扩展列表. 每个数组元素表示一个具有以下结构的扩展:

[
    'name' => 'extension name',
    'version' => 'version number',
    'bootstrap' => 'BootstrapClassName',  // 可选, 也可以是配置数组
    'alias' => [
        '@alias1' => 'to/path1',
        '@alias2' => 'to/path2',
    ],
]

上面列出的bootstrap类将在应用程序 引导进程 中实例化. 如果该类实现了 yii\base\BootstrapInterface, 则将调用其 bootstrap() 方法.

如果未在应用程序配置中明确设置, 则此属性将填充@vendor/yiisoft/extensions.php的内容.

public array $extensions null
$formatter public 属性

应用程序的格式化(formatter)组件. 该属性是只读的.

$i18n public 属性

应用程序的国际化(i18n)组件. 该属性是只读的.

public yii\i18n\I18N $i18n null
$language public 属性

用于最终用户的语言.

建议你使用 IETF 语言标签. 例如, en代表英语, 而en-US代表英语(美国).

参见 $sourceLanguage.

public string $language 'en-US'
$layout public 属性

在此应用程序中应该应用于视图的布局. 默认为main. 如果为false, 则将禁用布局.

public string|boolean $layout 'main'
$loadedModules public 属性

通过其类名称索引的已加载模块列表.

public array $loadedModules = []
$log public 属性

应用程序的日志(log)组件. 该属性是只读的.

public yii\log\Dispatcher $log null
$mailer public 属性

应用程序的邮件(mailer)组件. 该属性是只读的.

$name public 属性

应用程序的名称.

public string $name 'My Application'
$request public 属性

请求(request)组件. 该属性是只读的.

$requestedAction public 属性

请求的动作. 如果为null, 则表示无法将请求解析为动作.

$requestedParams public 属性

提供给请求动作的参数.

public array $requestedParams null
$requestedRoute public 属性

请求的路由.

public string $requestedRoute null
$response public 属性

响应(response)组件. 该属性是只读的.

$runtimePath public 属性

存储临时文件(eg: 日志文件, 缓存文件等)的目录. 默认为 $basePath 下的runtime子目录.

public string $runtimePath null
$security public 属性

应用程序的安全(security)组件. 该属性是只读的.

$sourceLanguage public 属性

应用程序所使用的语言. 这主要是指消息和视图文件所使用的语言.

参见 $language.

public string $sourceLanguage 'en-US'
$state public 属性

请求处理生命周期中的当前应用程序状态. 该属性由应用程序管理. 不要修改该属性.

public integer $state null
$timeZone public 属性

该应用程序使用的时区.

public string $timeZone null
$uniqueId public 属性

模块的唯一 ID. 该属性是只读的.

public string $uniqueId null
$urlManager public 属性

此应用程序的 URL 管理器. 该属性是只读的.

$vendorPath public 属性

存储供应商文件的目录. 默认为 $basePath 下的vendor目录.

public string $vendorPath null
$view public 属性

应用程序用于渲染各种视图文件的视图(view)组件. 该属性是只读的.

方法详情

__construct() public 方法

构造函数.

public void __construct ( $config = [] )
$config array

将用于初始化对象属性的 name-value 对.

Note: 配置必须同时包含 $id$basePath.

throws yii\base\InvalidConfigException

如果缺少 $id$basePath 配置.

bootstrap() protected 方法

初始化扩展并执行引导组件.

完全配置应用程序后, 此方法由 init() 调用. 如果重写此方法, 请确保调用了父级实现.

protected void bootstrap ( )
coreComponents() public 方法

返回核心应用程序组件的配置.

参见 set().

public void coreComponents ( )
end() public 方法

终止应用程序.

该方法通过在终止应用程序之前确保应用程序的生命周期已完成来替换exit()函数.

public void end ( $status 0, $response null )
$status integer

退出状态(值0表示正常退出, 而其他值表示异常退出).

$response yii\base\Response

要发送的响应. 如果未设置, 将使用默认的应用程序 $response 组件.

throws yii\base\ExitException

如果应用程序处于测试模式.

getAssetManager() public 方法

返回资源管理器(assetManager)组件.

public yii\web\AssetManager getAssetManager ( )
return yii\web\AssetManager

应用程序的资源管理器(assetManager)组件.

getAuthManager() public 方法

返回此应用程序的身份验证管理器(权限管理, authManager)组件.

public yii\rbac\ManagerInterface getAuthManager ( )
return yii\rbac\ManagerInterface

应用程序的身份验证管理器(权限管理, authManager)组件 如果未配置身份验证管理器, 则返回Null.

getCache() public 方法

返回缓存(cache)组件.

public yii\caching\CacheInterface getCache ( )
return yii\caching\CacheInterface

应用程序的缓存(cache)组件. 如果组件未启用, 则为Null.

getDb() public 方法

返回数据库连接组件.

public yii\db\Connection getDb ( )
return yii\db\Connection

数据库连接.

getErrorHandler() public 方法

返回错误处理(errorHandler)组件.

public yii\web\ErrorHandler|yii\console\ErrorHandler getErrorHandler ( )
return yii\web\ErrorHandler|yii\console\ErrorHandler

应用程序的错误处理(errorHandler)组件.

getFormatter() public 方法

返回格式化(formatter)组件.

public yii\i18n\Formatter getFormatter ( )
return yii\i18n\Formatter

应用程序的格式化(formatter)组件.

getI18n() public 方法

返回国际化(i18n)组件.

public yii\i18n\I18N getI18n ( )
return yii\i18n\I18N

应用程序的国际化(i18n)组件.

getLog() public 方法

返回日志(log)组件.

public yii\log\Dispatcher getLog ( )
return yii\log\Dispatcher

应用程序的日志(log)组件.

getMailer() public 方法

返回邮件(mailer)组件.

public yii\mail\MailerInterface getMailer ( )
return yii\mail\MailerInterface

应用程序的邮件(mailer)组件.

getRequest() public 方法

返回请求(request)组件.

public yii\web\Request|yii\console\Request getRequest ( )
return yii\web\Request|yii\console\Request

请求(request)组件.

getResponse() public 方法

返回响应(response)组件.

public yii\web\Response|yii\console\Response getResponse ( )
return yii\web\Response|yii\console\Response

响应(response)组件.

getRuntimePath() public 方法

返回存储临时文件(eg: 日志文件, 缓存文件等)的目录.

public string getRuntimePath ( )
return string

存储临时文件(eg: 日志文件, 缓存文件等)的目录. 默认为 $basePath 下的runtime子目录.

getSecurity() public 方法

返回安全(security)组件.

public yii\base\Security getSecurity ( )
return yii\base\Security

应用程序的安全(security)组件.

getTimeZone() public 方法

返回此应用程序使用的时区.

这是 PHP 函数date_default_timezone_get()的简单封装. 如果未在 php.ini 或应用程序配置中配置时区, 则默认将其设置为 UTC.

参见 https://secure.php.net/manual/en/function.date-default-timezone-get.php.

public string getTimeZone ( )
return string

此应用程序使用的时区.

getUniqueId() public 方法

返回当前应用程序所有模块中唯一标识此模块的ID.

由于这是一个应用程序实例, 它将始终返回一个空字符串.

public string getUniqueId ( )
return string

模块的唯一ID.

getUrlManager() public 方法

返回此应用程序的 URL 管理器.

public yii\web\UrlManager getUrlManager ( )
return yii\web\UrlManager

此应用程序的 URL 管理器.

getVendorPath() public 方法

返回存储供应商文件的目录.

public string getVendorPath ( )
return string

存储供应商文件的目录. 默认为 $basePath 下的vendor目录.

getView() public 方法

返回视图对象.

public yii\base\View|yii\web\View getView ( )
return yii\base\View|yii\web\View

应用程序用于渲染各种视图文件的视图(view)组件.

handleRequest() public abstract 方法

处理指定的请求.

该方法应返回 yii\base\Response 或其子类的的实例, 该实例表示请求的处理结果.

public abstract yii\base\Response handleRequest ( $request )
$request yii\base\Request

要处理的请求.

return yii\base\Response

响应结果.

init() public 方法

初始化模块.

在创建模块并使用配置中给定的属性值进行初始化之后调用此方法. 如果未设置, 默认实现将初始化 $controllerNamespace.

如果重写此方法, 请确保调用了父实现.

public void init ( )
preInit() public 方法

预初始化应用程序.

在应用程序构造函数的开始调用该方法. 它初始化了几个重要的应用程序属性. 如果重写此方法, 请确保调用了父级实现.

public void preInit ( &$config )
$config array

应用程序配置.

throws yii\base\InvalidConfigException

如果缺少 $id$basePath 配置.

registerErrorHandler() protected 方法

errorHandler组件注册为 PHP 错误处理程序.

protected void registerErrorHandler ( &$config )
$config array

应用程序配置.

run() public 方法

运行应用程序.

这是应用程序的主要入口.

public integer run ( )
return integer

退出状态(0表示正常, 非零值表示异常)

setBasePath() public 方法

设置应用程序的根目录和@app别名.

该方法只能在构造函数的开头调用.

public void setBasePath ( $path )
$path string

应用程序的根目录.

throws yii\base\InvalidArgumentException

如果该目录不存在.

setContainer() public 方法 (可用自版本: 2.0.11)

使用 $config 配置 Yii::$container.

public void setContainer ( $config )
$config array

以 name-value 对的形式给出的值.

setRuntimePath() public 方法

设置存储临时文件(eg: 日志文件, 缓存文件等)的目录.

public void setRuntimePath ( $path )
$path string

存储临时文件(eg: 日志文件, 缓存文件等)的目录.

setTimeZone() public 方法

设置此应用程序使用的时区.

这是 PHP 函数date_default_timezone_set()的简单封装. 了解可用的时区, 请参阅 php 手册.

参见 https://secure.php.net/manual/en/function.date-default-timezone-set.php.

public void setTimeZone ( $value )
$value string

此应用程序使用的时区.

setVendorPath() public 方法

设置存储供应商文件的目录.

public void setVendorPath ( $path )
$path string

存储供应商文件的目录.

事件详情

EVENT_AFTER_REQUEST 事件类型 yii\base\Event

在应用程序成功处理请求(发送响应之前)之后引发的事件.

EVENT_BEFORE_REQUEST 事件类型 yii\base\Event

在应用程序开始处理请求之前引发的事件.