类 yii\console\UnknownCommandException
UnknownCommandException 表示因错误使用控制台命令而导致的异常。
公共属性
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$application | yii\console\Application | yii\console\UnknownCommandException | |
$command | string | 无法识别的命令的名称。 | yii\console\UnknownCommandException |
公共方法
属性详情
方法详情
构造异常。
public void __construct ( $route, $application, $code = 0, $previous = null ) | ||
$route | string |
找不到的命令的路由。 |
$application | yii\console\Application |
涉及的控制台应用程序实例。 |
$code | integer |
异常代码。 |
$previous | Throwable|null |
用于异常链的先前异常。 |
public function __construct($route, $application, $code = 0, $previous = null)
{
$this->command = $route;
$this->application = $application;
parent::__construct("Unknown command \"$route\".", $code, $previous);
}
public string getName ( ) | ||
返回值 | string |
此异常的用户友好名称 |
---|
public function getName()
{
return 'Unknown command';
}
根据字符串相似性为 $command 建议替代命令。
使用以下步骤查找替代方案
- 建议以
$command
开头的替代方案 - 通过计算未知命令与所有可用命令之间的 Levenshtein 距离来查找拼写错误。 Levenshtein 距离定义为将 str1 转换为 str2 所需的最小字符替换、插入或删除次数。
public array getSuggestedAlternatives ( ) | ||
返回值 | array |
按相似度排序的建议替代方案列表。 |
---|
public function getSuggestedAlternatives()
{
$help = $this->application->createController('help');
if ($help === false || $this->command === '') {
return [];
}
/** @var $helpController HelpController */
list($helpController, $actionID) = $help;
$availableActions = [];
foreach ($helpController->getCommands() as $command) {
$result = $this->application->createController($command);
/** @var $controller Controller */
list($controller, $actionID) = $result;
if ($controller->createAction($controller->defaultAction) !== null) {
// add the command itself (default action)
$availableActions[] = $command;
}
// add all actions of this controller
$actions = $helpController->getActions($controller);
$prefix = $controller->getUniqueId();
foreach ($actions as $action) {
$availableActions[] = $prefix . '/' . $action;
}
}
return $this->filterBySimilarity($availableActions, $this->command);
}
注册 或 登录 以发表评论。