クラス yii\console\UnknownCommandException
UnknownCommandExceptionは、コンソールコマンドの誤った使用方法によって発生する例外を表します。
公開プロパティ
プロパティ | 型 | 説明 | 定義元 |
---|---|---|---|
$application | yii\console\Application | yii\console\UnknownCommandException | |
$command | string | 認識できなかったコマンドの名前。 | yii\console\UnknownCommandException |
公開メソッド
メソッド | 説明 | 定義元 |
---|---|---|
__construct() | 例外を構築します。 | yii\console\UnknownCommandException |
getName() | yii\console\UnknownCommandException | |
getSuggestedAlternatives() | 文字列の類似性に基づいて、$command の代替コマンドを提案します。 | 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に変換するために置換、挿入、または削除する必要がある最小文字数として定義されます。
こちらも参照してください https://www.php.net/manual/en/function.levenshtein.php.
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);
}
サインアップまたはログインしてコメントしてください。