Class yii\console\Application

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

Application 表示一个控制台应用程序.

通过提供特定于控制台请求的功能, 应用程序(Application)从 yii\base\Application 扩展而来. 特别的, 它通过基于命令的方法处理控制台请求.

  • 控制台应用程序由一个或多个可能的用户命令组成;
  • 每个用户命令都是作为扩展自 yii\console\Controller 的类来实现.
  • 用户指定在命令行上运行哪个命令;
  • 该命令用指定的参数处理用户请求.

命令类应位于 $controllerNamespace 指定的命名空间下. 他们的命名应遵循与控制器相同的命令规则. 例如, 使用HelpController类来实现help命令.

要运行控制台应用程序, 请在命令行上输入以下内容:

yii <route> [--param1=value1 --param2 ...]

其中<route>是指采用ModuleID/ControllerID/ActionID形式的控制器路由, 而param1param2是指一组将被用于初始化控制器动作(eg. --since=0指定了一个值为0的since参数, 并且相应的$since参数被传递给动作方法)的指定参数.

默认情况下会提供一个help命令, 其中列出了可用的命令并显示了它们的用法. 要使用此命令, 只需输入:

yii help

公共属性

隐藏继承的属性

属性类型描述定义在
$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\console\Controller 当前活动的控制器实例. yii\console\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\console\Application
$enableCoreCommands boolean 是否启用核心框架提供的命令. yii\console\Application
$errorHandler yii\console\ErrorHandler 应用程序的错误处理(errorHandler)组件. 该属性是只读的. yii\console\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\console\Request 请求(request)组件. 该属性是只读的. yii\console\Application
$requestedAction yii\base\Action 请求的动作. yii\base\Application
$requestedParams array 提供给请求动作的参数. yii\base\Application
$requestedRoute string 请求的路由. yii\base\Application
$response yii\console\Response 响应(response)组件. 该属性是只读的. yii\console\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\console\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
coreCommands() 返回内置命令的配置. yii\console\Application
coreComponents() 返回核心应用程序组件的配置. yii\console\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() 返回错误处理程序组件. yii\console\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\console\Application
getResponse() 返回响应(response)组件. yii\console\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\console\Application
has() 返回一个值, 指示定位器是否具有指定的组件定义或是否已实例化该组件. yii\base\Module
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasModule() 检查是否存在指定ID的子模块. yii\base\Module
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化应用程序. yii\console\Application
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
preInit() 预初始化应用程序. yii\base\Application
run() 运行应用程序. yii\base\Application
runAction() 运行由路由指定的的控制器动作. yii\console\Application
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
loadConfig() 加载配置. yii\console\Application
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

常量

隐藏继承的常量

常量描述定义在
OPTION_APPCONFIG 'appconfig' 用于指定应用程序配置文件路径的选项名称. yii\console\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

属性详情

$controller public 属性

当前活动的控制器实例.

$defaultRoute public 属性

此应用程序的默认路由. 默认为help, 意思是help命令.

public string $defaultRoute 'help'
$enableCoreCommands public 属性

是否启用核心框架提供的命令. 默认为true.

$errorHandler public 属性

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

$request public 属性

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

$response public 属性

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

方法详情

__construct() public 方法

构造函数.

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

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

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

throws yii\base\InvalidConfigException

如果缺少 $id$basePath 配置.

coreCommands() public 方法

返回内置命令的配置.

public array coreCommands ( )
return array

内置命令的配置.

coreComponents() public 方法

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

public void coreComponents ( )
getErrorHandler() public 方法

返回错误处理程序组件.

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

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

getRequest() public 方法

返回请求(request)组件.

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

请求(request)组件.

getResponse() public 方法

返回响应(response)组件.

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

响应(response)组件.

handleRequest() public 方法

处理指定的请求.

public yii\console\Response handleRequest ( $request )
$request yii\console\Request

要处理的请求.

return yii\console\Response

响应(response)结果.

init() public 方法

初始化应用程序.

public void init ( )
loadConfig() protected 方法

加载配置.

该方法将检查是否指定了命令行选项 OPTION_APPCONFIG. 如果指定了, 相应的文件将作为应用程序配置被加载. 否则, 将返回作为参数提供的配置返回.

protected array loadConfig ( $config )
$config array

在构造函数中提供的配置.

return array

应用程序要使用的实际配置.

runAction() public 方法

运行由路由指定的的控制器动作.

该方法解析指定的路由并创建相应的子模块, 控制器和动作实例. 然后它调用 yii\console\Controller::runAction() 以给定的参数运行该动作. 如果路由为空, 该方法将使用 $defaultRoute.

例如, 要运行public function actionTest($a, $b), 假设控制器有选项(options), 应使用以下代码:

\Yii::$app->runAction('controller/test', ['option' => 'value', $a, $b]);
public integer|yii\console\Response runAction ( $route, $params = [] )
$route string

指定动作的路由.

$params array

要传递给动作的参数.

return integer|yii\console\Response

动作的结果. 可以是退出代码或响应(Response)对象. 退出代码0表示正常, 其它值表示异常. null的退出代码也被标注为0.

throws yii\console\Exception

如果路由无效.