没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\console\Controller

继承yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\ViewContextInterface
子类yii\console\controllers\AssetController, yii\console\controllers\BaseMigrateController, yii\console\controllers\CacheController, yii\console\controllers\FixtureController, yii\console\controllers\HelpController, yii\console\controllers\MessageController, yii\console\controllers\MigrateController, yii\console\controllers\ServeController
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/console/Controller.php

Controller 是控制台命令类的基类。

控制台控制器由一个或多个称为子命令的动作组成。 用户通过指定标识控制器动作的相应路由来调用控制台命令。 调用控制台命令时使用 yii 程序,如下所示:

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

其中 <route> 是指向控制器动作的路径,参数将作为命令的属性填充。 有关详细信息看 options()

公共属性

隐藏继承的属性

属性类型描述被定义在
$action yii\base\Action The action that is currently being executed. yii\base\Controller
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$color boolean 是否在输出中启用 ANSI 颜色。 如果未设置,则仅为支持 ANSI 颜色的终端启用 ANSI 颜色。 yii\console\Controller
$defaultAction string The ID of the action that is used when the action ID is not specified in the request. yii\base\Controller
$help boolean 是否显示有关当前命令的帮助信息。 yii\console\Controller
$helpSummary string yii\console\Controller
$id string The ID of this controller. yii\base\Controller
$interactive boolean 是否以交互方式运行命令。 yii\console\Controller
$layout null|string|false The name of the layout to be applied to this controller's views. yii\base\Controller
$module yii\base\Module The module that this controller belongs to. yii\base\Controller
$modules yii\base\Module[] All ancestor modules that this controller is located within. yii\base\Controller
$passedOptionValues array 与传递的选项对应的属性 yii\console\Controller
$passedOptions array 执行期间传递的选项的名称 yii\console\Controller
$route string The route (module ID, controller ID and action ID) of the current request. yii\base\Controller
$uniqueId string The controller ID that is prefixed with the module ID (if any). yii\base\Controller
$view yii\base\View|yii\web\View The view object that can be used to render views or view files. yii\base\Controller
$viewPath string The directory containing the view files for this controller. yii\base\Controller

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() yii\base\Controller
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
actions() Declares external actions for the controller. yii\base\Controller
afterAction() This method is invoked right after an action is executed. yii\base\Controller
ansiFormat() 使用 ANSI 代码格式化字符串。 yii\console\Controller
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeAction() This method is invoked right before an action is executed. yii\base\Controller
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
bindActionParams() 将参数绑定到动作。 当 yii\base\Action 开始使用给定的参数运行时,此方法被调用。 此方法首先将参数与操作可用的 options绑定。 然后验证给定的参数。 yii\console\Controller
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
confirm() 要求用户通过键入 y 或 n 来确认。 yii\console\Controller
createAction() Creates an action based on the given action ID. yii\base\Controller
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
findLayoutFile() Finds the applicable layout file. yii\base\Controller
getActionArgsHelp() 返回动作的匿名参数的帮助信息。 yii\console\Controller
getActionHelp() 返回指定动作的详细帮助信息。 yii\console\Controller
getActionHelpSummary() 返回描述指定动作的一行简短摘要。 yii\console\Controller
getActionOptionsHelp() 返回动作选项的帮助信息。 yii\console\Controller
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getHelp() 返回此控制器的帮助信息。 yii\console\Controller
getHelpSummary() 返回描述此控制器的一行简短摘要。 yii\console\Controller
getModules() Returns all ancestor modules of this controller. yii\base\Controller
getOptionValues() 返回与动作 ID 的选项对应的属性 子类可以重写此方法以指定可能的属性。 yii\console\Controller
getPassedOptionValues() 返回与传递的选项对应的属性。 yii\console\Controller
getPassedOptions() 返回执行期间传递的有效选项的名称。 yii\console\Controller
getRoute() Returns the route of the current request. yii\base\Controller
getUniqueId() Returns the unique ID of the controller. yii\base\Controller
getView() Returns the view object that can be used to render views or view files. yii\base\Controller
getViewPath() Returns the directory containing view files for this controller. yii\base\Controller
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\base\BaseObject
isColorEnabled() 返回一个指示是否启用 ANSI 颜色的值。 yii\console\Controller
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
optionAliases() 返回选项别名。 子类可以重写此方法以指定别名选项。 yii\console\Controller
options() 返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。 yii\console\Controller
prompt() 提示用户输入并验证它。 yii\console\Controller
render() Renders a view and applies layout if available. yii\base\Controller
renderContent() Renders a static string by applying a layout. yii\base\Controller
renderFile() Renders a view file. yii\base\Controller
renderPartial() Renders a view without applying layout. yii\base\Controller
run() Runs a request specified in terms of a route. yii\base\Controller
runAction() 使用指定的动作 ID 和参数运行动作。 如果动作 ID 为空,则该方法将使用 $defaultAction yii\console\Controller
select() 为用户提供可供选择的选项。给予 '?' 作为输入将显示 可供选择的选项列表及其解释。 yii\console\Controller
setView() Sets the view object to be used by this controller. yii\base\Controller
setViewPath() Sets the directory that contains the view files. yii\base\Controller
stderr() 将字符串打印到 STDERR。 yii\console\Controller
stdout() 将字符串打印到 STDOUT。 yii\console\Controller
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
getActionMethodReflection() yii\console\Controller
parseDocCommentDetail() 返回 docblock 的完整描述。 yii\console\Controller
parseDocCommentSummary() 返回 docblock 的第一行。 yii\console\Controller
parseDocCommentTags() 将注释块解析为标记。 yii\console\Controller

Events

隐藏继承的事件

事件类型描述被定义在
EVENT_AFTER_ACTION yii\base\ActionEvent An event raised right after executing a controller action. yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent An event raised right before executing a controller action. yii\base\Controller

常量

隐藏继承的常量

常量描述被定义在
EXIT_CODE_ERROR 1 Deprecated 自 2.0.13。使用 yii\console\ExitCode::UNSPECIFIED_ERROR 替代。 yii\console\Controller
EXIT_CODE_NORMAL 0 Deprecated 自 2.0.13。使用 yii\console\ExitCode::OK 替代。 yii\console\Controller

属性详情

$color 公共 属性

是否在输出中启用 ANSI 颜色。 如果未设置,则仅为支持 ANSI 颜色的终端启用 ANSI 颜色。

public boolean $color null
$help 公共 只读 属性 (自版本 2.0.10 可用)

是否显示有关当前命令的帮助信息。

public string getHelp ( )
$helpSummary 公共 只读 属性
$interactive 公共 属性

是否以交互方式运行命令。

public boolean $interactive true
$passedOptionValues 公共 只读 属性

与传递的选项对应的属性

$passedOptions 公共 只读 属性

执行期间传递的选项的名称

方法详情

ansiFormat() 公共 方法

使用 ANSI 代码格式化字符串。

你可以使用 yii\helpers\Console 中定义的常量传递其他参数。

例如:

echo $this->ansiFormat('This will be red and underlined.', Console::FG_RED, Console::UNDERLINE);
public string ansiFormat($string)
$string string

要格式化的字符串

bindActionParams() 公共 方法

将参数绑定到动作。 当 yii\base\Action 开始使用给定的参数运行时,此方法被调用。 此方法首先将参数与操作可用的 options绑定。 然后验证给定的参数。

public array bindActionParams($action, $params)
$action yii\base\Action

要用参数绑定的动作

$params array

要绑定到动作的参数

return array

可以运行动作的有效参数。

throws yii\console\Exception

如果存在未知选项或缺少参数

confirm() 公共 方法

要求用户通过键入 y 或 n 来确认。

典型用法如下所示:

if ($this->confirm("Are you sure?")) {
    echo "user typed yes\n";
} else {
    echo "user typed no\n";
}
public boolean confirm($message, $default false)
$message string

在等待用户输入之前回显

$default boolean

如果未进行选择,则返回此值。

return boolean

用户是否确认。 如果 $interactive 是 false 则返回 true。

getActionArgsHelp() 公共 方法

返回动作的匿名参数的帮助信息。

返回的值应该是一个数组。键是参数名称,值是 相应的帮助信息。每个值必须是以下结构的数组:

  • required: boolean,是否需要此参数。
  • type: string,此参数的 PHP 类型。
  • default: string,此参数的默认值
  • comment: string,这个参数的注释

默认实现将返回从与动作方法对应的参数的文档注释中 提取的帮助信息。

public array getActionArgsHelp($action)
$action yii\base\Action
return array

动作参数的帮助信息

getActionHelp() 公共 方法

返回指定动作的详细帮助信息。

public string getActionHelp($action)
$action yii\base\Action

获取帮助的动作

return string

指定动作的详细帮助信息。

getActionHelpSummary() 公共 方法

返回描述指定动作的一行简短摘要。

public string getActionHelpSummary($action)
$action yii\base\Action

获取摘要的动作

return string

描述指定动作的一行简短摘要。

getActionMethodReflection() 受保护 方法

protected ReflectionMethod getActionMethodReflection($action)
$action yii\base\Action
getActionOptionsHelp() 公共 方法

返回动作选项的帮助信息。

返回的值应该是一个数组。键是选项名称,值是 相应的帮助信息。每个值必须是以下结构的数组:

  • type: string,此参数的 PHP 类型。
  • default: string,此参数的默认值
  • comment: string,这个参数的注释

默认实现将返回从与动作方法对应的属性的文档注释中 提取的帮助信息。

public array getActionOptionsHelp($action)
$action yii\base\Action
return array

动作选项的帮助信息

getHelp() 公共 方法

返回此控制器的帮助信息。

您可以重写此方法以返回自定义帮助。 默认实现返回从 PHPDoc 注释中检索的帮助信息。

public string getHelp()
getHelpSummary() 公共 方法

返回描述此控制器的一行简短摘要。

您可以重写此方法以返回自定义摘要。 默认实现返回 PHPDoc 注释的第一行。

public string getHelpSummary()
getOptionValues() 公共 方法

返回与动作 ID 的选项对应的属性 子类可以重写此方法以指定可能的属性。

public array getOptionValues($actionID)
$actionID string

当前请求的动作 id

return array

属性对应于动作的选项

getPassedOptionValues() 公共 方法

返回与传递的选项对应的属性。

public array getPassedOptionValues()
return array

与传递的选项对应的属性

getPassedOptions() 公共 方法

返回执行期间传递的有效选项的名称。

public array getPassedOptions()
return array

执行期间传递的选项的名称

isColorEnabled() 公共 方法

返回一个指示是否启用 ANSI 颜色的值。

仅当 $color 设置为 true 或者没有设置并且终端支持 ANSI 颜色时 才启用 ANSI 颜色

public boolean isColorEnabled($stream = \STDOUT)
$stream resource

The stream to check.

return boolean

Whether to enable ANSI style in output.

optionAliases() 公共 方法 (自版本 2.0.8 可用)

返回选项别名。 子类可以重写此方法以指定别名选项。

参见 options().

public array optionAliases()
return array

选项别名对操作有效, 其中键是选项的别名,值是选项名。

options() 公共 方法

返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。

请注意,通过选项设置的值不可用 直到调用 beforeAction()

public string[] options($actionID)
$actionID string

当前请求的动作 id

return string[]

对操作有效的选项名称

parseDocCommentDetail() 受保护 方法

返回 docblock 的完整描述。

protected string parseDocCommentDetail($reflection)
$reflection Reflector
parseDocCommentSummary() 受保护 方法

返回 docblock 的第一行。

protected string parseDocCommentSummary($reflection)
$reflection Reflector
parseDocCommentTags() 受保护 方法

将注释块解析为标记。

protected array parseDocCommentTags($reflection)
$reflection Reflector

注释块

return array

解析的标记

prompt() 公共 方法

提示用户输入并验证它。

public string prompt($text, $options = [])
$text string

提示字符串

$options array

验证输入的选项:

  • required:是否需要
  • default:如果用户未插入输入,则为默认值
  • pattern:用于验证用户输入的正则表达式模式
  • validator:用于验证输入的可调用函数。该函数必须接受两个参数:
    • $input:用于验证的用户输入
    • $error:如果验证失败,则通过引用传递的错误值。

如何将提示方法与验证器函数一起使用的示例。

$code = $this->prompt('Enter 4-Chars-Pin', ['required' => true, 'validator' => function($input, &$error) {
    if (strlen($input) !== 4) {
        $error = 'The Pin must be exactly 4 chars!';
        return false;
    }
    return true;
}]);
return string

用户输入

runAction() 公共 方法

使用指定的动作 ID 和参数运行动作。 如果动作 ID 为空,则该方法将使用 $defaultAction

参见 createAction().

public integer runAction($id, $params = [])
$id string

要执行的动作的 ID。

$params array

要传递给动作的参数(名称-值 对)。

return integer

动作执行的状态。0 表示正常,其他值表示异常。

throws yii\base\InvalidRouteException

如果请求的动作 ID 无法成功解析为动作。

throws yii\console\Exception

如果存在未知选项或缺少参数

select() 公共 方法

为用户提供可供选择的选项。给予 '?' 作为输入将显示 可供选择的选项列表及其解释。

public string select($prompt, $options = [])
$prompt string

提示消息

$options array

可供选择的选项的键值数组

return string

用户选择的选项字符

stderr() 公共 方法

将字符串打印到 STDERR。

你可以选择使用 ANSI 代码格式化字符串, 通过使用 yii\helpers\Console 中定义的常量传递其他参数。

例如:

$this->stderr('This will be red and underlined.', Console::FG_RED, Console::UNDERLINE);
public integer|boolean stderr($string)
$string string

要打印的字符串

return integer|boolean

打印的字节数或 false 在错误时

stdout() 公共 方法

将字符串打印到 STDOUT。

你可以选择使用 ANSI 代码格式化字符串,通过 使用 yii\helpers\Console 中定义的常量传递其他参数。

例如:

$this->stdout('This will be red and underlined.', Console::FG_RED, Console::UNDERLINE);
public integer|boolean stdout($string)
$string string

要打印的字符串

return integer|boolean

打印的字节数或 false 在错误时