Class yii\console\Controller
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 |
属性详情
是否在输出中启用 ANSI 颜色。 如果未设置,则仅为支持 ANSI 颜色的终端启用 ANSI 颜色。
是否显示有关当前命令的帮助信息。
是否以交互方式运行命令。
与传递的选项对应的属性
执行期间传递的选项的名称
方法详情
使用 ANSI 代码格式化字符串。
你可以使用 yii\helpers\Console 中定义的常量传递其他参数。
例如:
echo $this->ansiFormat('This will be red and underlined.', Console::FG_RED, Console::UNDERLINE);
public string ansiFormat($string) | ||
$string | string | 要格式化的字符串 |
将参数绑定到动作。 当 yii\base\Action 开始使用给定的参数运行时,此方法被调用。 此方法首先将参数与操作可用的 options绑定。 然后验证给定的参数。
public array bindActionParams($action, $params) | ||
$action | yii\base\Action | 要用参数绑定的动作 |
$params | array | 要绑定到动作的参数 |
return | array | 可以运行动作的有效参数。 |
---|---|---|
throws | yii\console\Exception | 如果存在未知选项或缺少参数 |
要求用户通过键入 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。 |
---|
返回动作的匿名参数的帮助信息。
返回的值应该是一个数组。键是参数名称,值是 相应的帮助信息。每个值必须是以下结构的数组:
- required: boolean,是否需要此参数。
- type: string,此参数的 PHP 类型。
- default: string,此参数的默认值
- comment: string,这个参数的注释
默认实现将返回从与动作方法对应的参数的文档注释中 提取的帮助信息。
public array getActionArgsHelp($action) | ||
$action | yii\base\Action | |
return | array | 动作参数的帮助信息 |
---|
返回指定动作的详细帮助信息。
public string getActionHelp($action) | ||
$action | yii\base\Action | 获取帮助的动作 |
return | string | 指定动作的详细帮助信息。 |
---|
返回描述指定动作的一行简短摘要。
public string getActionHelpSummary($action) | ||
$action | yii\base\Action | 获取摘要的动作 |
return | string | 描述指定动作的一行简短摘要。 |
---|
protected ReflectionMethod getActionMethodReflection($action) | ||
$action | yii\base\Action |
返回动作选项的帮助信息。
返回的值应该是一个数组。键是选项名称,值是 相应的帮助信息。每个值必须是以下结构的数组:
- type: string,此参数的 PHP 类型。
- default: string,此参数的默认值
- comment: string,这个参数的注释
默认实现将返回从与动作方法对应的属性的文档注释中 提取的帮助信息。
public array getActionOptionsHelp($action) | ||
$action | yii\base\Action | |
return | array | 动作选项的帮助信息 |
---|
返回此控制器的帮助信息。
您可以重写此方法以返回自定义帮助。 默认实现返回从 PHPDoc 注释中检索的帮助信息。
public string getHelp() |
返回描述此控制器的一行简短摘要。
您可以重写此方法以返回自定义摘要。 默认实现返回 PHPDoc 注释的第一行。
public string getHelpSummary() |
返回与动作 ID 的选项对应的属性 子类可以重写此方法以指定可能的属性。
public array getOptionValues($actionID) | ||
$actionID | string | 当前请求的动作 id |
return | array | 属性对应于动作的选项 |
---|
返回与传递的选项对应的属性。
public array getPassedOptionValues() | ||
return | array | 与传递的选项对应的属性 |
---|
返回执行期间传递的有效选项的名称。
public array getPassedOptions() | ||
return | array | 执行期间传递的选项的名称 |
---|
返回一个指示是否启用 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. |
---|
返回选项别名。 子类可以重写此方法以指定别名选项。
参见 options().
public array optionAliases() | ||
return | array | 选项别名对操作有效, 其中键是选项的别名,值是选项名。 |
---|
返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。
请注意,通过选项设置的值不可用 直到调用 beforeAction()。
public string[] options($actionID) | ||
$actionID | string | 当前请求的动作 id |
return | string[] | 对操作有效的选项名称 |
---|
返回 docblock 的完整描述。
protected string parseDocCommentDetail($reflection) | ||
$reflection | Reflector |
返回 docblock 的第一行。
protected string parseDocCommentSummary($reflection) | ||
$reflection | Reflector |
将注释块解析为标记。
protected array parseDocCommentTags($reflection) | ||
$reflection | Reflector | 注释块 |
return | array | 解析的标记 |
---|
提示用户输入并验证它。
public string prompt($text, $options = []) | ||
$text | string | 提示字符串 |
$options | array | 验证输入的选项:
如何将提示方法与验证器函数一起使用的示例。
|
return | string | 用户输入 |
---|
使用指定的动作 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 | 如果存在未知选项或缺少参数 |
为用户提供可供选择的选项。给予 '?' 作为输入将显示 可供选择的选项列表及其解释。
public string select($prompt, $options = []) | ||
$prompt | string | 提示消息 |
$options | array | 可供选择的选项的键值数组 |
return | string | 用户选择的选项字符 |
---|
将字符串打印到 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。
你可以选择使用 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 在错误时 |
---|