0 フォロワー

クラス yii\console\UnknownCommandException

継承yii\console\UnknownCommandException » yii\console\Exception » yii\base\UserException » yii\base\Exception » Exception
利用可能バージョン2.0.11
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/console/UnknownCommandException.php

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

プロパティの詳細

継承されたプロパティを隠す

$application protected プロパティ
$command public プロパティ

認識できなかったコマンドの名前。

public string $command null

メソッドの詳細

継承されたメソッドを隠す

__construct() public メソッド

例外を構築します。

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);
}

            
getName() public メソッド

public string getName ( )
戻り値 string

この例外のユーザーフレンドリーな名前。

                public function getName()
{
    return 'Unknown command';
}

            
getSuggestedAlternatives() public メソッド

文字列の類似性に基づいて、$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);
}