0 フォロワー

クラス yii\console\controllers\HelpController

継承yii\console\controllers\HelpController » yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\base\ViewContextInterface
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/console/controllers/HelpController.php

コンソールコマンドに関するヘルプ情報を提供します。

このコマンドは、アプリケーションで使用可能なコマンドリスト、または特定のコマンドの使用方法に関する詳細な説明を表示します。

このコマンドは、コマンドラインで次のように使用できます。

yii help [command name]

上記において、コマンド名が指定されていない場合、利用可能なすべてのコマンドが表示されます。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$action yii\base\Action|null 現在実行中のアクション。 yii\base\Controller
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$color boolean|null 出力でANSIカラーを有効にするかどうか。 yii\console\Controller
$commands array 利用可能なすべてのコマンド名。 yii\console\controllers\HelpController
$defaultAction string リクエストでアクションIDが指定されていない場合に使用されるアクションのID。 yii\base\Controller
$help boolean 現在のコマンドに関するヘルプ情報を表示するかどうか。 yii\console\Controller
$helpSummary string yii\console\Controller
$id string このコントローラーのID。 yii\base\Controller
$interactive boolean コマンドをインタラクティブに実行するかどうか。 yii\console\Controller
$layout string|null|false このコントローラーのビューに適用されるレイアウトの名前。 yii\base\Controller
$module yii\base\Module このコントローラーが属するモジュール。 yii\base\Controller
$modules yii\base\Module[] このコントローラーが配置されているすべての先祖モジュール。 yii\base\Controller
$passedOptionValues array 渡されたオプションに対応するプロパティ。 yii\console\Controller
$passedOptions array 実行中に渡されたオプションの名前。 yii\console\Controller
$request yii\base\Request|array|string リクエスト。 yii\base\Controller
$response yii\base\Response|array|string レスポンス。 yii\base\Controller
$route string 現在のリクエストのルート(モジュールID、コントローラーID、およびアクションID)。 yii\base\Controller
$silentExitOnException boolean|null trueの場合、例外が発生した場合にExitCode::OKでスクリプトが終了します。 yii\console\Controller
$uniqueId string モジュールID(存在する場合)がプレフィックスとして付加されたコントローラーID。 yii\base\Controller
$view yii\base\View|yii\web\View ビューまたはビューファイルのレンダリングに使用できるビューオブジェクト。 yii\base\Controller
$viewPath string このコントローラーのビューファイルが含まれるディレクトリ。 yii\base\Controller

公開メソッド

継承されたメソッドを非表示

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトをクローンしてオブジェクトが作成された後に呼び出されます。 yii\base\Component
__construct() yii\base\Controller
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているか(つまり、定義されており、nullではないか)どうかを確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティをnullに設定します。 yii\base\Component
actionIndex() 利用可能なコマンド、または特定のコマンドに関する詳細情報を表示します。 yii\console\controllers\HelpController
actionList() 利用可能なすべてのコントローラーとアクションを機械可読形式でリストします。 yii\console\controllers\HelpController
actionListActionOptions() $actionで利用可能なすべてのオプションを機械可読形式でリストします。 yii\console\controllers\HelpController
actionUsage() $actionの使用情報を表示します。 yii\console\controllers\HelpController
actions() コントローラーの外部アクションを宣言します。 yii\base\Controller
afterAction() このメソッドは、アクションが実行された直後に呼び出されます。 yii\base\Controller
ansiFormat() ANSIコードで文字列をフォーマットします。 yii\console\Controller
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeAction() このメソッドは、アクションが実行される直前に呼び出されます。 yii\console\Controller
behaviors() このコンポーネントがビヘイビアとして動作するべきビヘイビアのリストを返します。 yii\base\Component
bindActionParams() アクションにパラメータをバインドします。 yii\console\Controller
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
confirm() y または n を入力して確認を求める。 yii\console\Controller
createAction() 指定されたアクション ID に基づいてアクションを作成します。 yii\base\Controller
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
findLayoutFile() 適用可能なレイアウトファイルを検索します。 yii\base\Controller
getActionArgsHelp() アクションの匿名引数のヘルプ情報を返します。 yii\console\Controller
getActionHelp() 指定されたアクションの詳細なヘルプ情報を返します。 yii\console\Controller
getActionHelpSummary() 指定されたアクションを説明する1行の短い要約を返します。 yii\console\Controller
getActionOptionsHelp() アクションのオプションのヘルプ情報を返します。 yii\console\Controller
getActions() 指定されたコントローラーの利用可能なすべてのアクションを返します。 yii\console\controllers\HelpController
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getCommands() 利用可能なすべてのコマンド名を返します。 yii\console\controllers\HelpController
getHelp() このコントローラーのヘルプ情報を返します。 yii\console\Controller
getHelpSummary() このコントローラーを説明する1行の短い要約を返します。 yii\console\Controller
getModules() このコントローラーのすべての祖先モジュールを返します。 yii\base\Controller
getOptionValues() アクションIDのオプションに対応するプロパティを返します。子クラスは、利用可能なプロパティを指定するためにこのメソッドをオーバーライドできます。 yii\console\Controller
getPassedOptionValues() 渡されたオプションに対応するプロパティを返します。 yii\console\Controller
getPassedOptions() 実行中に渡された有効なオプションの名前を返します。 yii\console\Controller
getRoute() 現在のリクエストのルートを返します。 yii\base\Controller
getUniqueId() コントローラーの一意のIDを返します。 yii\base\Controller
getView() ビューまたはビューファイルのレンダリングに使用できるビューオブジェクトを返します。 yii\base\Controller
getViewPath() このコントローラーのビューファイルが含まれるディレクトリを返します。 yii\base\Controller
hasEventHandlers() 名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\base\Controller
isColorEnabled() ANSIカラーが有効かどうかを示す値を返します。 yii\console\Controller
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
optionAliases() オプションのエイリアス名を返します。 yii\console\Controller
options() アクション(id)の有効なオプションの名前を返します。オプションには、名前がオプション名である public メンバー変数の存在が必要です。 yii\console\Controller
prompt() ユーザーに入力を促し、それを検証します。 yii\console\Controller
render() ビューをレンダリングし、利用可能な場合はレイアウトを適用します。 yii\base\Controller
renderContent() レイアウトを適用して静的な文字列をレンダリングします。 yii\base\Controller
renderFile() ビューファイルをレンダリングします。 yii\base\Controller
renderPartial() レイアウトを適用せずにビューをレンダリングします。 yii\base\Controller
run() ルートで指定されたリクエストを実行します。 yii\base\Controller
runAction() 指定されたアクションIDとパラメータを使用してアクションを実行します。 yii\console\Controller
select() ユーザーに選択肢を与えます。入力として '?' を指定すると、選択肢とその説明のリストが表示されます。 yii\console\Controller
setView() このコントローラーで使用するビューオブジェクトを設定します。 yii\base\Controller
setViewPath() ビューファイルが含まれるディレクトリを設定します。 yii\base\Controller
stderr() STDERRに文字列を出力します。 yii\console\Controller
stdout() STDOUTに文字列を出力します。 yii\console\Controller
trigger() イベントをトリガーします。 yii\base\Component

Protected Methods

継承されたメソッドを非表示

メソッド 説明 定義元
bindInjectedParams() アクションメソッドシグネチャの型と名前に基づいてパラメータを設定します。 yii\base\Controller
formatOptionAliases() yii\console\controllers\HelpController
formatOptionHelp() 引数またはオプションの整形された文字列を生成します。 yii\console\controllers\HelpController
getActionMethodReflection() yii\console\Controller
getCommandDescriptions() コマンドとその説明の配列を返します。 yii\console\controllers\HelpController
getCommandHelp() コマンドの全体的な情報を表示します。 yii\console\controllers\HelpController
getDefaultHelp() 利用可能なすべてのコマンドを表示します。 yii\console\controllers\HelpController
getDefaultHelpHeader() デフォルトのヘルプヘッダーを返します。 yii\console\controllers\HelpController
getModuleCommands() 指定されたモジュールの利用可能なコマンドを返します。 yii\console\controllers\HelpController
getScriptName() yii\console\controllers\HelpController
getSubCommandHelp() コマンドアクションの詳細情報を表示します。 yii\console\controllers\HelpController
parseDocCommentDetail() ドックブロックから完全な説明を返します。 yii\console\Controller
parseDocCommentSummary() ドックブロックの最初の行を返します。 yii\console\Controller
parseDocCommentTags() コメントブロックをタグに解析します。 yii\console\Controller
validateControllerClass() 指定されたクラスが有効なコンソールコントローラークラスであるかどうかを検証します。 yii\console\controllers\HelpController

Events

継承されたイベントを非表示

Event 説明 定義元
EVENT_AFTER_ACTION yii\base\ActionEvent コントローラーアクションの実行直後に発生するイベント。 yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent コントローラーアクションの実行直前に発生するイベント。 yii\base\Controller

Constants

継承された定数を非表示

Constant Value 説明 定義元
EXIT_CODE_ERROR 1 2.0.13 以降は非推奨。代わりに yii\console\ExitCode::UNSPECIFIED_ERROR を使用してください。 yii\console\Controller
EXIT_CODE_NORMAL 0 2.0.13 以降は非推奨。代わりに yii\console\ExitCode::OK を使用してください。 yii\console\Controller

Property Details

継承されたプロパティを非表示

$commands public property

利用可能なすべてのコマンド名。

public array $commands null

Method Details

継承されたメソッドを非表示

__call() public method

定義元: yii\base\Component::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアに名前付きメソッドがあるかどうかを確認し、利用可能な場合は実行します。

このメソッドは、不明なメソッドが呼び出されるときに暗黙的に呼び出されるPHPマジックメソッドであるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

不明なメソッドを呼び出すとき

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() public method

定義元: yii\base\Component::__clone()

このメソッドは、既存のオブジェクトをクローンしてオブジェクトが作成された後に呼び出されます。

ビヘイビアは古いオブジェクトにアタッチされているため、すべてのビヘイビアを削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() public method
public void __construct ( $id, $module, $config = [] )
$id string

このコントローラーのID。

$module yii\base\Module

このコントローラーが属するモジュール。

$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア。

                public function __construct($id, $module, $config = [])
{
    $this->id = $id;
    $this->module = $module;
    parent::__construct($config);
}

            
__get() public method

定義元: yii\base\Component::__get()

コンポーネントプロパティの値を返します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • ゲッターで定義されたプロパティ:ゲッターの結果を返す
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を返す

このメソッドは、$value = $component->property;を実行するときに暗黙的に呼び出されるPHPマジックメソッドであるため、直接呼び出さないでください。

こちらも参照してください __set().

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティの値、またはビヘイビアのプロパティの値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが書き込み専用の場合。

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public メソッド

定義元: yii\base\Component::__isset()

プロパティが設定されているか(つまり、定義されており、nullではないか)どうかを確認します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティが設定されているかどうかを返す
  • ビヘイビアのプロパティ: プロパティが設定されているかどうかを返す
  • 存在しないプロパティに対しては false を返す

isset($component->property) を実行するときに暗黙的に呼び出される PHP マジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらも参照してください https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

return boolean

指定されたプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() public メソッド

定義元: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値を設定する
  • "on xyz" の形式のイベント: イベント "xyz" にハンドラをアタッチする
  • "as xyz" の形式のビヘイビア: "xyz" という名前のビヘイビアをアタッチする
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を設定する

$component->property = $value; を実行するときに暗黙的に呼び出される PHP マジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらも参照してください __get()

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() public メソッド

定義元: yii\base\Component::__unset()

コンポーネントプロパティをnullに設定します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値を null に設定する
  • ビヘイビアのプロパティ: プロパティ値を null に設定する

unset($component->property) を実行するときに暗黙的に呼び出される PHP マジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらも参照してください https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            
actionIndex() public メソッド

利用可能なコマンド、または特定のコマンドに関する詳細情報を表示します。

public integer actionIndex ( $command null )
$command string|null

ヘルプを表示するコマンドの名前。指定しない場合は、利用可能なすべてのコマンドが表示されます。

return integer

終了ステータス

throws yii\console\Exception

ヘルプの対象となるコマンドが不明の場合

                public function actionIndex($command = null)
{
    if ($command !== null) {
        $result = Yii::$app->createController($command);
        if ($result === false) {
            $name = $this->ansiFormat($command, Console::FG_YELLOW);
            throw new Exception("No help for unknown command \"$name\".");
        }
        list($controller, $actionID) = $result;
        $actions = $this->getActions($controller);
        if ($actionID !== '' || count($actions) === 1 && $actions[0] === $controller->defaultAction) {
            $this->getSubCommandHelp($controller, $actionID);
        } else {
            $this->getCommandHelp($controller);
        }
    } else {
        $this->getDefaultHelp();
    }
}

            
actionList() public メソッド (バージョン 2.0.11 から利用可能)

利用可能なすべてのコントローラーとアクションを機械可読形式でリストします。

これはシェル補完に使用されます。

public void actionList ( )

                public function actionList()
{
    foreach ($this->getCommandDescriptions() as $command => $description) {
        $result = Yii::$app->createController($command);
        /** @var $controller Controller */
        list($controller, $actionID) = $result;
        $actions = $this->getActions($controller);
        $prefix = $controller->getUniqueId();
        if ($controller->createAction($controller->defaultAction) !== null) {
            $this->stdout("$prefix\n");
        }
        foreach ($actions as $action) {
            $this->stdout("$prefix/$action\n");
        }
    }
}

            
actionListActionOptions() public メソッド (バージョン 2.0.11 から利用可能)

$actionで利用可能なすべてのオプションを機械可読形式でリストします。

これはシェル補完に使用されます。

public void actionListActionOptions ( $action )
$action string

アクションへのルート

                public function actionListActionOptions($action)
{
    $result = Yii::$app->createController($action);
    if ($result === false || !($result[0] instanceof Controller)) {
        return;
    }
    /** @var Controller $controller */
    list($controller, $actionID) = $result;
    $action = $controller->createAction($actionID);
    if ($action === null) {
        return;
    }
    foreach ($controller->getActionArgsHelp($action) as $argument => $help) {
        $description = preg_replace('~\R~', '', addcslashes($help['comment'], ':')) ?: $argument;
        $this->stdout($argument . ':' . $description . "\n");
    }
    $this->stdout("\n");
    foreach ($controller->getActionOptionsHelp($action) as $argument => $help) {
        $description = preg_replace('~\R~', '', addcslashes($help['comment'], ':'));
        $this->stdout('--' . $argument . ($description ? ':' . $description : '') . "\n");
    }
}

            
actionUsage() public メソッド (バージョン 2.0.11 から利用可能)

$actionの使用情報を表示します。

public void actionUsage ( $action )
$action string

アクションへのルート

                public function actionUsage($action)
{
    $result = Yii::$app->createController($action);
    if ($result === false || !($result[0] instanceof Controller)) {
        return;
    }
    /** @var Controller $controller */
    list($controller, $actionID) = $result;
    $action = $controller->createAction($actionID);
    if ($action === null) {
        return;
    }
    $scriptName = $this->getScriptName();
    if ($action->id === $controller->defaultAction) {
        $this->stdout($scriptName . ' ' . $this->ansiFormat($controller->getUniqueId(), Console::FG_YELLOW));
    } else {
        $this->stdout($scriptName . ' ' . $this->ansiFormat($action->getUniqueId(), Console::FG_YELLOW));
    }
    foreach ($controller->getActionArgsHelp($action) as $name => $arg) {
        if ($arg['required']) {
            $this->stdout(' <' . $name . '>', Console::FG_CYAN);
        } else {
            $this->stdout(' [' . $name . ']', Console::FG_CYAN);
        }
    }
    $this->stdout("\n");
}

            
actions() public メソッド

定義元: yii\base\Controller::actions()

コントローラーの外部アクションを宣言します。

このメソッドは、コントローラに対する外部アクションを宣言するためにオーバーライドされることを意図しています。これは配列を返す必要があり、配列のキーはアクションID、配列の値は対応するアクションクラス名またはアクション構成配列になります。例:

return [
    'action1' => 'app\components\Action1',
    'action2' => [
        'class' => 'app\components\Action2',
        'property1' => 'value1',
        'property2' => 'value2',
    ],
];

Yii::createObject() は、ここで提供された構成を使用して、リクエストされたアクションを作成するために後で使用されます。

public array actions ( )

                public function actions()
{
    return [];
}

            
afterAction() public メソッド

定義元: yii\base\Controller::afterAction()

このメソッドは、アクションが実行された直後に呼び出されます。

このメソッドは EVENT_AFTER_ACTION イベントをトリガーします。このメソッドの戻り値は、アクションの戻り値として使用されます。

このメソッドをオーバーライドする場合は、次のようになるようにコードを作成する必要があります

public function afterAction($action, $result)
{
    $result = parent::afterAction($action, $result);
    // your custom code here
    return $result;
}
public mixed afterAction ( $action, $result )
$action yii\base\Action

実行されたアクション。

$result mixed

アクションの戻り値。

return mixed

処理されたアクションの結果。

                public function afterAction($action, $result)
{
    $event = new ActionEvent($action);
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_ACTION, $event);
    return $event->result;
}

            
ansiFormat() public メソッド

定義元: yii\console\Controller::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

書式設定する文字列

                public function ansiFormat($string)
{
    if ($this->isColorEnabled()) {
        $args = func_get_args();
        array_shift($args);
        $string = Console::ansiFormat($string, $args);
    }
    return $string;
}

            
attachBehavior() public method

定義元: yii\base\Component::attachBehavior()

このコンポーネントにビヘイビアをアタッチします。

このメソッドは、与えられた構成に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach() メソッドを呼び出すことで、ビヘイビアオブジェクトはこのコンポーネントにアタッチされます。

detachBehavior() も参照してください。

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの構成。以下のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • Yii::createObject() に渡されてビヘイビアオブジェクトを作成するオブジェクト構成配列。
return yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() public method

定義元: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは、その名前でインデックスされ、yii\base\Behavior オブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための構成配列である必要があります。

attachBehavior() も参照してください。

public void attachBehaviors ( $behaviors )
$behaviors array

コンポーネントにアタッチされるビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            
beforeAction() public method

定義元: yii\console\Controller::beforeAction()

このメソッドは、アクションが実行される直前に呼び出されます。

このメソッドは、EVENT_BEFORE_ACTION イベントをトリガーします。このメソッドの戻り値によって、アクションの実行を継続するかどうかが決定されます。

アクションを実行しない場合、必要な出力を提供するか、リクエストをリダイレクトすることで、beforeAction コード内でリクエストを処理する必要があります。そうでない場合、レスポンスは空になります。

このメソッドをオーバーライドする場合は、次のようになるようにコードを作成する必要があります

public function beforeAction($action)
{
    // your custom code here, if you want the code to run before action filters,
    // which are triggered on the [[EVENT_BEFORE_ACTION]] event, e.g. PageCache or AccessControl

    if (!parent::beforeAction($action)) {
        return false;
    }

    // other custom code here

    return true; // or false to not run the action
}
public boolean beforeAction ( $action )
$action yii\base\Action

実行されるアクション。

return boolean

アクションの実行を継続するかどうか。

                public function beforeAction($action)
{
    $silentExit = $this->silentExitOnException !== null ? $this->silentExitOnException : YII_ENV_TEST;
    Yii::$app->errorHandler->silentExitOnException = $silentExit;
    return parent::beforeAction($action);
}

            
behaviors() public method

定義元: yii\base\Component::behaviors()

このコンポーネントがビヘイビアとして動作するべきビヘイビアのリストを返します。

子クラスは、このメソッドをオーバーライドして、ビヘイビアとして機能させたいものを指定できます。

このメソッドの戻り値は、ビヘイビア名でインデックスされたビヘイビアオブジェクトまたは構成の配列である必要があります。ビヘイビア構成は、ビヘイビアクラスを指定する文字列、または次の構造の配列のいずれかになります。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

ビヘイビアクラスは yii\base\Behavior を拡張する必要があることに注意してください。ビヘイビアは、名前を使用するか、匿名でアタッチできます。名前が配列キーとして使用されている場合、この名前を使用して、後で getBehavior() を使用してビヘイビアを取得したり、detachBehavior() を使用してデタッチしたりできます。匿名のビヘイビアは取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、(必要に応じて) コンポーネントに自動的にアタッチされます。

public array behaviors ( )
return array

ビヘイビアの構成。

                public function behaviors()
{
    return [];
}

            
bindActionParams() public method

定義元: yii\console\Controller::bindActionParams()

アクションにパラメータをバインドします。

このメソッドは、指定されたパラメータを使用して実行を開始するときに yii\base\Action によって呼び出されます。このメソッドは、まずパラメータをアクションで使用可能な オプション にバインドします。次に、指定された引数を検証します。

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

パラメータとバインドされるアクション

$params array

アクションにバインドされるパラメータ

return array

アクションが実行できる有効なパラメータ。

throws yii\console\Exception

不明なオプションまたは不足している引数がある場合

                public function bindActionParams($action, $params)
{
    if ($action instanceof InlineAction) {
        $method = new \ReflectionMethod($this, $action->actionMethod);
    } else {
        $method = new \ReflectionMethod($action, 'run');
    }
    $args = [];
    $missing = [];
    $actionParams = [];
    $requestedParams = [];
    foreach ($method->getParameters() as $i => $param) {
        $name = $param->getName();
        $key = null;
        if (array_key_exists($i, $params)) {
            $key = $i;
        } elseif (array_key_exists($name, $params)) {
            $key = $name;
        }
        if ($key !== null) {
            if (PHP_VERSION_ID >= 80000) {
                $isArray = ($type = $param->getType()) instanceof \ReflectionNamedType && $type->getName() === 'array';
            } else {
                $isArray = $param->isArray();
            }
            if ($isArray) {
                $params[$key] = $params[$key] === '' ? [] : preg_split('/\s*,\s*/', $params[$key]);
            }
            $args[] = $actionParams[$key] = $params[$key];
            unset($params[$key]);
        } elseif (
            PHP_VERSION_ID >= 70100
            && ($type = $param->getType()) !== null
            && $type instanceof \ReflectionNamedType
            && !$type->isBuiltin()
        ) {
            try {
                $this->bindInjectedParams($type, $name, $args, $requestedParams);
            } catch (\yii\base\Exception $e) {
                throw new Exception($e->getMessage());
            }
        } elseif ($param->isDefaultValueAvailable()) {
            $args[] = $actionParams[$i] = $param->getDefaultValue();
        } else {
            $missing[] = $name;
        }
    }
    if (!empty($missing)) {
        throw new Exception(Yii::t('yii', 'Missing required arguments: {params}', ['params' => implode(', ', $missing)]));
    }
    // We use a different array here, specifically one that doesn't contain service instances but descriptions instead.
    if (\Yii::$app->requestedParams === null) {
        \Yii::$app->requestedParams = array_merge($actionParams, $requestedParams);
    }
    return array_merge($args, $params);
}

            
bindInjectedParams() protected method (バージョン 2.0.36 から利用可能)

定義元: yii\base\Controller::bindInjectedParams()

アクションメソッドシグネチャの型と名前に基づいてパラメータを設定します。

protected void bindInjectedParams ( ReflectionType $type, $name, &$args, &$requestedParams )
$type ReflectionType

アクションパラメータのリフレクション型。

$name string

パラメータの名前。

$args array

アクションの引数の配列。この関数は項目を追加できます。

$requestedParams array

リクエストされたパラメータの配列。この関数は特定のキーを書き込むことができます。

throws yii\base\ErrorException

必要なサービスをロードできない場合。

throws yii\base\InvalidConfigException

DI 構成にエラーがある場合にスローされます。

throws yii\di\NotInstantiableException

コンテナ内の適切な定義なしに、定義を具象クラス (たとえば、インターフェース型ヒント) に解決できない場合にスローされます。

                final protected function bindInjectedParams(\ReflectionType $type, $name, &$args, &$requestedParams)
{
    // Since it is not a builtin type it must be DI injection.
    $typeName = $type->getName();
    if (($component = $this->module->get($name, false)) instanceof $typeName) {
        $args[] = $component;
        $requestedParams[$name] = 'Component: ' . get_class($component) . " \$$name";
    } elseif ($this->module->has($typeName) && ($service = $this->module->get($typeName)) instanceof $typeName) {
        $args[] = $service;
        $requestedParams[$name] = 'Module ' . get_class($this->module) . " DI: $typeName \$$name";
    } elseif (\Yii::$container->has($typeName) && ($service = \Yii::$container->get($typeName)) instanceof $typeName) {
        $args[] = $service;
        $requestedParams[$name] = "Container DI: $typeName \$$name";
    } elseif ($type->allowsNull()) {
        $args[] = null;
        $requestedParams[$name] = "Unavailable service: $name";
    } else {
        throw new Exception('Could not load required service: ' . $name);
    }
}

            
canGetProperty() public method

定義元: yii\base\Component::canGetProperty()

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティは以下の場合に読み取ることができます。

  • クラスが、指定された名前に関連付けられたゲッターメソッドを持っている場合 (この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスが、指定された名前のメンバ変数を持っている場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが、指定された名前の読み取り可能なプロパティを持っている場合 ($checkBehaviors が true の場合)。

canSetProperty() も参照してください。

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティを読み取ることができるかどうか

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public メソッド

定義元: yii\base\Component::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティが書き込み可能である条件:

  • クラスが指定された名前に関連付けられたセッターメソッドを持っている (この場合、プロパティ名は大小文字を区別しません)。
  • クラスが、指定された名前のメンバ変数を持っている場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが、指定された名前の書き込み可能なプロパティを持っている ($checkBehaviors が true の場合)。

参照: canGetProperty()

public boolean canSetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが書き込み可能かどうか。

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
className() public static メソッド
2.0.14から非推奨。PHP >=5.5では、代わりに::classを使用してください。

定義元: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
return string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
confirm() public メソッド

定義元: yii\console\Controller::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 を返します。

                public function confirm($message, $default = false)
{
    if ($this->interactive) {
        return Console::confirm($message, $default);
    }
    return true;
}

            
createAction() public メソッド

定義元: yii\base\Controller::createAction()

指定されたアクション ID に基づいてアクションを作成します。

このメソッドは、まずアクション ID が actions() で宣言されているかどうかを確認します。宣言されている場合は、そこで宣言された構成を使用してアクションオブジェクトを作成します。そうでない場合は、コントローラーメソッドの名前が `actionXyz` の形式であるかどうかを検索します。ここで `xyz` はアクション ID です。見つかった場合、そのメソッドを表す yii\base\InlineAction が作成され返されます。

public yii\base\Action|null createAction ( $id )
$id string

アクション ID。

return yii\base\Action|null

新しく作成されたアクションインスタンス。ID がどのアクションにも解決されない場合は Null。

                public function createAction($id)
{
    if ($id === '') {
        $id = $this->defaultAction;
    }
    $actionMap = $this->actions();
    if (isset($actionMap[$id])) {
        return Yii::createObject($actionMap[$id], [$id, $this]);
    }
    if (preg_match('/^(?:[a-z0-9_]+-)*[a-z0-9_]+$/', $id)) {
        $methodName = 'action' . str_replace(' ', '', ucwords(str_replace('-', ' ', $id)));
        if (method_exists($this, $methodName)) {
            $method = new \ReflectionMethod($this, $methodName);
            if ($method->isPublic() && $method->getName() === $methodName) {
                return new InlineAction($id, $this, $methodName);
            }
        }
    }
    return null;
}

            
detachBehavior() public メソッド

定義元: yii\base\Component::detachBehavior()

コンポーネントからビヘイビアをデタッチします。

ビヘイビアの yii\base\Behavior::detach() メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

return yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合は Null。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() public メソッド

定義元: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
ensureBehaviors() public メソッド

定義元: yii\base\Component::ensureBehaviors()

behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
findLayoutFile() public メソッド

定義元: yii\base\Controller::findLayoutFile()

適用可能なレイアウトファイルを検索します。

public string|boolean findLayoutFile ( $view )
$view yii\base\View

レイアウトファイルをレンダリングするビューオブジェクト。

return string|boolean

レイアウトファイルのパス、またはレイアウトが不要な場合は false。このパラメーターの指定方法については、render() を参照してください。

throws yii\base\InvalidArgumentException

レイアウトの指定に無効なパスエイリアスが使用された場合。

                public function findLayoutFile($view)
{
    $module = $this->module;
    $layout = null;
    if (is_string($this->layout)) {
        $layout = $this->layout;
    } elseif ($this->layout === null) {
        while ($module !== null && $module->layout === null) {
            $module = $module->module;
        }
        if ($module !== null && is_string($module->layout)) {
            $layout = $module->layout;
        }
    }
    if ($layout === null) {
        return false;
    }
    if (strncmp($layout, '@', 1) === 0) {
        $file = Yii::getAlias($layout);
    } elseif (strncmp($layout, '/', 1) === 0) {
        $file = Yii::$app->getLayoutPath() . DIRECTORY_SEPARATOR . substr($layout, 1);
    } else {
        $file = $module->getLayoutPath() . DIRECTORY_SEPARATOR . $layout;
    }
    if (pathinfo($file, PATHINFO_EXTENSION) !== '') {
        return $file;
    }
    $path = $file . '.' . $view->defaultExtension;
    if ($view->defaultExtension !== 'php' && !is_file($path)) {
        $path = $file . '.php';
    }
    return $path;
}

            
formatOptionAliases() protected メソッド (バージョン 2.0.8 以降で利用可能)

protected string formatOptionAliases ( $controller, $option )
$controller yii\console\Controller

コントローラーのインスタンス

$option string

オプション名

return string

エイリアス引数またはオプション用にフォーマットされた文字列

                protected function formatOptionAliases($controller, $option)
{
    foreach ($controller->optionAliases() as $name => $value) {
        if (Inflector::camel2id($value, '-', true) === $option) {
            return ', -' . $name;
        }
    }
    return '';
}

            
formatOptionHelp() protected メソッド

引数またはオプションの整形された文字列を生成します。

protected string formatOptionHelp ( $name, $required, $type, $defaultValue, $comment )
$name string

引数またはオプションの名前

$required boolean

引数が必須かどうか

$type string

オプションまたは引数の型

$defaultValue mixed

オプションまたは引数のデフォルト値

$comment string

オプションまたは引数に関するコメント

return string

引数またはオプションのフォーマットされた文字列

                protected function formatOptionHelp($name, $required, $type, $defaultValue, $comment)
{
    $comment = trim((string)$comment);
    $type = trim((string)$type);
    if (strncmp($type, 'bool', 4) === 0) {
        $type = 'boolean, 0 or 1';
    }
    if ($defaultValue !== null && !is_array($defaultValue)) {
        if ($type === null) {
            $type = gettype($defaultValue);
        }
        if (is_bool($defaultValue)) {
            // show as integer to avoid confusion
            $defaultValue = (int) $defaultValue;
        }
        if (is_string($defaultValue)) {
            $defaultValue = "'" . $defaultValue . "'";
        } else {
            $defaultValue = var_export($defaultValue, true);
        }
        $doc = "$type (defaults to $defaultValue)";
    } else {
        $doc = $type;
    }
    if ($doc === '') {
        $doc = $comment;
    } elseif ($comment !== '') {
        $doc .= "\n" . preg_replace('/^/m', '  ', $comment);
    }
    $name = $required ? "$name (required)" : $name;
    return $doc === '' ? $name : "$name: $doc";
}

            
getActionArgsHelp() public メソッド

定義元: yii\console\Controller::getActionArgsHelp()

アクションの匿名引数のヘルプ情報を返します。

返される値は配列である必要があります。キーは引数名であり、値は対応するヘルプ情報です。各値は、次の構造の配列でなければなりません。

  • required: bool, この引数が必須かどうか
  • type: string|null, この引数のPHP型
  • default: mixed, この引数のデフォルト値
  • comment: string, この引数の説明

デフォルトの実装では、アクションメソッドに対応するパラメータのリフレクションまたはDocBlockから抽出されたヘルプ情報が返されます。

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

アクションインスタンス

return array

アクション引数のヘルプ情報

                public function getActionArgsHelp($action)
{
    $method = $this->getActionMethodReflection($action);
    $tags = $this->parseDocCommentTags($method);
    $tags['param'] = isset($tags['param']) ? (array) $tags['param'] : [];
    $phpDocParams = [];
    foreach ($tags['param'] as $i => $tag) {
        if (preg_match('/^(?<type>\S+)(\s+\$(?<name>\w+))?(?<comment>.*)/us', $tag, $matches) === 1) {
            $key = empty($matches['name']) ? $i : $matches['name'];
            $phpDocParams[$key] = ['type' => $matches['type'], 'comment' => $matches['comment']];
        }
    }
    unset($tags);
    $args = [];
    /** @var \ReflectionParameter $parameter */
    foreach ($method->getParameters() as $i => $parameter) {
        $type = null;
        $comment = '';
        if (PHP_MAJOR_VERSION > 5 && $parameter->hasType()) {
            $reflectionType = $parameter->getType();
            if (PHP_VERSION_ID >= 70100) {
                $types = method_exists($reflectionType, 'getTypes') ? $reflectionType->getTypes() : [$reflectionType];
                foreach ($types as $key => $reflectionType) {
                    $types[$key] = $reflectionType->getName();
                }
                $type = implode('|', $types);
            } else {
                $type = (string) $reflectionType;
            }
        }
        // find PhpDoc tag by property name or position
        $key = isset($phpDocParams[$parameter->name]) ? $parameter->name : (isset($phpDocParams[$i]) ? $i : null);
        if ($key !== null) {
            $comment = $phpDocParams[$key]['comment'];
            if ($type === null && !empty($phpDocParams[$key]['type'])) {
                $type = $phpDocParams[$key]['type'];
            }
        }
        // if type still not detected, then using type of default value
        if ($type === null && $parameter->isDefaultValueAvailable() && $parameter->getDefaultValue() !== null) {
            $type = gettype($parameter->getDefaultValue());
        }
        $args[$parameter->name] = [
            'required' => !$parameter->isOptional(),
            'type' => $type,
            'default' => $parameter->isDefaultValueAvailable() ? $parameter->getDefaultValue() : null,
            'comment' => $comment,
        ];
    }
    return $args;
}

            
getActionHelp() public メソッド

定義元: yii\console\Controller::getActionHelp()

指定されたアクションの詳細なヘルプ情報を返します。

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

ヘルプを取得するアクション

return string

指定されたアクションの詳細なヘルプ情報。

                public function getActionHelp($action)
{
    return $this->parseDocCommentDetail($this->getActionMethodReflection($action));
}

            
getActionHelpSummary() public メソッド

定義元: yii\console\Controller::getActionHelpSummary()

指定されたアクションを説明する1行の短い要約を返します。

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

概要を取得するアクション

return string

指定されたアクションを説明する1行の短い概要。

                public function getActionHelpSummary($action)
{
    if ($action === null) {
        return $this->ansiFormat(Yii::t('yii', 'Action not found.'), Console::FG_RED);
    }
    return $this->parseDocCommentSummary($this->getActionMethodReflection($action));
}

            
getActionMethodReflection() protected メソッド
protected ReflectionFunctionAbstract getActionMethodReflection ( $action )
$action yii\base\Action

                protected function getActionMethodReflection($action)
{
    if (!isset($this->_reflections[$action->id])) {
        if ($action instanceof InlineAction) {
            $this->_reflections[$action->id] = new \ReflectionMethod($this, $action->actionMethod);
        } else {
            $this->_reflections[$action->id] = new \ReflectionMethod($action, 'run');
        }
    }
    return $this->_reflections[$action->id];
}

            
getActionOptionsHelp() public メソッド

定義元: yii\console\Controller::getActionOptionsHelp()

アクションのオプションのヘルプ情報を返します。

返される値は配列である必要があります。キーはオプション名であり、値は対応するヘルプ情報です。各値は、次の構造の配列でなければなりません。

  • type: string, この引数のPHP型。
  • default: string, この引数のデフォルト値
  • comment: string, この引数のコメント

デフォルトの実装では、アクションオプションに対応するプロパティのドキュメントコメントから抽出されたヘルプ情報が返されます。

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

アクションオプションのヘルプ情報

                public function getActionOptionsHelp($action)
{
    $optionNames = $this->options($action->id);
    if (empty($optionNames)) {
        return [];
    }
    $class = new \ReflectionClass($this);
    $options = [];
    foreach ($class->getProperties() as $property) {
        $name = $property->getName();
        if (!in_array($name, $optionNames, true)) {
            continue;
        }
        $defaultValue = $property->getValue($this);
        $tags = $this->parseDocCommentTags($property);
        // Display camelCase options in kebab-case
        $name = Inflector::camel2id($name, '-', true);
        if (isset($tags['var']) || isset($tags['property'])) {
            $doc = isset($tags['var']) ? $tags['var'] : $tags['property'];
            if (is_array($doc)) {
                $doc = reset($doc);
            }
            if (preg_match('/^(\S+)(.*)/s', $doc, $matches)) {
                $type = $matches[1];
                $comment = $matches[2];
            } else {
                $type = null;
                $comment = $doc;
            }
            $options[$name] = [
                'type' => $type,
                'default' => $defaultValue,
                'comment' => $comment,
            ];
        } else {
            $options[$name] = [
                'type' => null,
                'default' => $defaultValue,
                'comment' => '',
            ];
        }
    }
    return $options;
}

            
getActions() public メソッド

指定されたコントローラーの利用可能なすべてのアクションを返します。

public array getActions ( $controller )
$controller yii\console\Controller

コントローラーのインスタンス

return array

利用可能なすべてのアクションID。

                public function getActions($controller)
{
    $actions = array_keys($controller->actions());
    $class = new \ReflectionClass($controller);
    foreach ($class->getMethods() as $method) {
        $name = $method->getName();
        if ($name !== 'actions' && $method->isPublic() && !$method->isStatic() && strncmp($name, 'action', 6) === 0) {
            $actions[] = $this->camel2id(substr($name, 6));
        }
    }
    sort($actions);
    return array_unique($actions);
}

            
getBehavior() public メソッド

定義元: yii\base\Component::getBehavior()

名前付きビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name string

ビヘイビアの名前

return yii\base\Behavior|null

ビヘイビアオブジェクト。または、ビヘイビアが存在しない場合はnull

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() public メソッド

定義元: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされているすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
return yii\base\Behavior[]

このコンポーネントにアタッチされたビヘイビアのリスト

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getCommandDescriptions() protected メソッド

コマンドとその説明の配列を返します。

protected array getCommandDescriptions ( )
return array

キーとして利用可能なすべてのコマンド、値としてその説明。

                protected function getCommandDescriptions()
{
    $descriptions = [];
    foreach ($this->getCommands() as $command) {
        $result = Yii::$app->createController($command);
        /** @var Controller $controller */
        list($controller, $actionID) = $result;
        $descriptions[$command] = $controller->getHelpSummary();
    }
    return $descriptions;
}

            
getCommandHelp() protected メソッド

コマンドの全体的な情報を表示します。

protected void getCommandHelp ( $controller )
$controller yii\console\Controller

コントローラーのインスタンス

                protected function getCommandHelp($controller)
{
    $controller->color = $this->color;
    $this->stdout("\nDESCRIPTION\n", Console::BOLD);
    $comment = $controller->getHelp();
    if ($comment !== '') {
        $this->stdout("\n$comment\n\n");
    }
    $actions = $this->getActions($controller);
    if (!empty($actions)) {
        $this->stdout("\nSUB-COMMANDS\n\n", Console::BOLD);
        $prefix = $controller->getUniqueId();
        $maxlen = 5;
        foreach ($actions as $action) {
            $len = strlen($prefix . '/' . $action) + 2 + ($action === $controller->defaultAction ? 10 : 0);
            $maxlen = max($maxlen, $len);
        }
        foreach ($actions as $action) {
            $this->stdout('- ' . $this->ansiFormat($prefix . '/' . $action, Console::FG_YELLOW));
            $len = strlen($prefix . '/' . $action) + 2;
            if ($action === $controller->defaultAction) {
                $this->stdout(' (default)', Console::FG_GREEN);
                $len += 10;
            }
            $summary = $controller->getActionHelpSummary($controller->createAction($action));
            if ($summary !== '') {
                $this->stdout(str_repeat(' ', $maxlen - $len + 2) . Console::wrapText($summary, $maxlen + 2));
            }
            $this->stdout("\n");
        }
        $scriptName = $this->getScriptName();
        $this->stdout("\nTo see the detailed information about individual sub-commands, enter:\n");
        $this->stdout("\n  $scriptName " . $this->ansiFormat('help', Console::FG_YELLOW) . ' '
            . $this->ansiFormat('<sub-command>', Console::FG_CYAN) . "\n\n");
    }
}

            
getCommands() public メソッド

利用可能なすべてのコマンド名を返します。

public array getCommands ( )
return array

利用可能なすべてのコマンド名

                public function getCommands()
{
    $commands = $this->getModuleCommands(Yii::$app);
    sort($commands);
    return array_filter(array_unique($commands), function ($command) {
        $result = Yii::$app->createController($command);
        if ($result === false || !$result[0] instanceof Controller) {
            return false;
        }
        list($controller, $actionID) = $result;
        $actions = $this->getActions($controller);
        return $actions !== [];
    });
}

            
getDefaultHelp() protected メソッド

利用可能なすべてのコマンドを表示します。

protected void getDefaultHelp ( )

                protected function getDefaultHelp()
{
    $commands = $this->getCommandDescriptions();
    $this->stdout($this->getDefaultHelpHeader());
    if (empty($commands)) {
        $this->stdout("\nNo commands are found.\n\n", Console::BOLD);
        return;
    }
    $this->stdout("\nThe following commands are available:\n\n", Console::BOLD);
    $maxLength = 0;
    foreach ($commands as $command => $description) {
        $result = Yii::$app->createController($command);
        /** @var $controller Controller */
        list($controller, $actionID) = $result;
        $actions = $this->getActions($controller);
        $prefix = $controller->getUniqueId();
        foreach ($actions as $action) {
            $string = $prefix . '/' . $action;
            if ($action === $controller->defaultAction) {
                $string .= ' (default)';
            }
            $maxLength = max($maxLength, strlen($string));
        }
    }
    foreach ($commands as $command => $description) {
        $result = Yii::$app->createController($command);
        list($controller, $actionID) = $result;
        $actions = $this->getActions($controller);
        $this->stdout('- ' . $this->ansiFormat($command, Console::FG_YELLOW));
        $this->stdout(str_repeat(' ', $maxLength + 4 - strlen($command)));
        $this->stdout(Console::wrapText($description, $maxLength + 4 + 2), Console::BOLD);
        $this->stdout("\n");
        $prefix = $controller->getUniqueId();
        foreach ($actions as $action) {
            $string = '  ' . $prefix . '/' . $action;
            $this->stdout('  ' . $this->ansiFormat($string, Console::FG_GREEN));
            if ($action === $controller->defaultAction) {
                $string .= ' (default)';
                $this->stdout(' (default)', Console::FG_YELLOW);
            }
            $summary = $controller->getActionHelpSummary($controller->createAction($action));
            if ($summary !== '') {
                $this->stdout(str_repeat(' ', $maxLength + 4 - strlen($string)));
                $this->stdout(Console::wrapText($summary, $maxLength + 4 + 2));
            }
            $this->stdout("\n");
        }
        $this->stdout("\n");
    }
    $scriptName = $this->getScriptName();
    $this->stdout("\nTo see the help of each command, enter:\n", Console::BOLD);
    $this->stdout("\n  $scriptName " . $this->ansiFormat('help', Console::FG_YELLOW) . ' '
        . $this->ansiFormat('<command-name>', Console::FG_CYAN) . "\n\n");
}

            
getDefaultHelpHeader() protected メソッド (バージョン 2.0.11 から利用可能)

デフォルトのヘルプヘッダーを返します。

protected string getDefaultHelpHeader ( )
return string

デフォルトのヘルプヘッダー。

                protected function getDefaultHelpHeader()
{
    return "\nThis is Yii version " . \Yii::getVersion() . ".\n";
}

            
getHelp() public メソッド

定義元: yii\console\Controller::getHelp()

このコントローラーのヘルプ情報を返します。

このメソッドをオーバーライドして、カスタマイズされたヘルプを返すことができます。デフォルトの実装では、PHPDocコメントから取得したヘルプ情報を返します。

public string getHelp ( )

                public function getHelp()
{
    return $this->parseDocCommentDetail(new \ReflectionClass($this));
}

            
getHelpSummary() public メソッド

定義元: yii\console\Controller::getHelpSummary()

このコントローラーを説明する1行の短い要約を返します。

このメソッドをオーバーライドして、カスタマイズされたサマリーを返すことができます。デフォルトの実装では、PHPDocコメントの最初の行を返します。

public string getHelpSummary ( )

                public function getHelpSummary()
{
    return $this->parseDocCommentSummary(new \ReflectionClass($this));
}

            
getModuleCommands() protected メソッド

指定されたモジュールの利用可能なコマンドを返します。

protected array getModuleCommands ( $module )
$module yii\base\Module

モジュールインスタンス

return array

利用可能なコマンド名

                protected function getModuleCommands($module)
{
    $prefix = $module instanceof Application ? '' : $module->getUniqueId() . '/';
    $commands = [];
    foreach (array_keys($module->controllerMap) as $id) {
        $commands[] = $prefix . $id;
    }
    foreach ($module->getModules() as $id => $child) {
        if (($child = $module->getModule($id)) === null) {
            continue;
        }
        foreach ($this->getModuleCommands($child) as $command) {
            $commands[] = $command;
        }
    }
    $controllerPath = $module->getControllerPath();
    if (is_dir($controllerPath)) {
        $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($controllerPath, \RecursiveDirectoryIterator::KEY_AS_PATHNAME));
        $iterator = new \RegexIterator($iterator, '/.*Controller\.php$/', \RecursiveRegexIterator::GET_MATCH);
        foreach ($iterator as $matches) {
            $file = $matches[0];
            $relativePath = str_replace($controllerPath, '', $file);
            $class = strtr($relativePath, [
                '/' => '\\',
                '.php' => '',
            ]);
            $controllerClass = $module->controllerNamespace . $class;
            if ($this->validateControllerClass($controllerClass)) {
                $dir = ltrim(pathinfo($relativePath, PATHINFO_DIRNAME), '\\/');
                $command = Inflector::camel2id(substr(basename($file), 0, -14), '-', true);
                if (!empty($dir)) {
                    $command = $dir . '/' . $command;
                }
                $commands[] = $prefix . $command;
            }
        }
    }
    return $commands;
}

            
getModules() public メソッド

定義元: yii\base\Controller::getModules()

このコントローラーのすべての祖先モジュールを返します。

配列の最初のモジュールは最も外側のモジュール (つまり、アプリケーションインスタンス) であり、最後は最も内側のモジュールです。

public yii\base\Module[] getModules ( )
return yii\base\Module[]

このコントローラーが配置されているすべての先祖モジュール。

                public function getModules()
{
    $modules = [$this->module];
    $module = $this->module;
    while ($module->module !== null) {
        array_unshift($modules, $module->module);
        $module = $module->module;
    }
    return $modules;
}

            
getOptionValues() public メソッド

定義元: yii\console\Controller::getOptionValues()

アクションIDのオプションに対応するプロパティを返します。子クラスは、利用可能なプロパティを指定するためにこのメソッドをオーバーライドできます。

public array getOptionValues ( $actionID )
$actionID string

現在のリクエストのアクションID

return array

アクションのオプションに対応するプロパティ

                public function getOptionValues($actionID)
{
    // $actionId might be used in subclasses to provide properties specific to action id
    $properties = [];
    foreach ($this->options($this->action->id) as $property) {
        $properties[$property] = $this->$property;
    }
    return $properties;
}

            
getPassedOptionValues() public メソッド

定義元: yii\console\Controller::getPassedOptionValues()

渡されたオプションに対応するプロパティを返します。

public array getPassedOptionValues ( )
return array

渡されたオプションに対応するプロパティ

                public function getPassedOptionValues()
{
    $properties = [];
    foreach ($this->_passedOptions as $property) {
        $properties[$property] = $this->$property;
    }
    return $properties;
}

            
getPassedOptions() public メソッド

定義元: yii\console\Controller::getPassedOptions()

実行中に渡された有効なオプションの名前を返します。

public array getPassedOptions ( )
return array

実行中に渡されたオプションの名前

                public function getPassedOptions()
{
    return $this->_passedOptions;
}

            
getRoute() public メソッド

定義元: yii\base\Controller::getRoute()

現在のリクエストのルートを返します。

public string getRoute ( )
return string

現在のリクエストのルート(モジュールID、コントローラーID、およびアクションID)。

                public function getRoute()
{
    return $this->action !== null ? $this->action->getUniqueId() : $this->getUniqueId();
}

            
getScriptName() protected メソッド

protected string getScriptName ( )
return string

現在実行中のCLIスクリプトの名前。

                protected function getScriptName()
{
    return basename(Yii::$app->request->scriptFile);
}

            
getSubCommandHelp() protected メソッド

コマンドアクションの詳細情報を表示します。

protected void getSubCommandHelp ( $controller, $actionID )
$controller yii\console\Controller

コントローラーのインスタンス

$actionID string

アクションID

throws yii\console\Exception

アクションが存在しない場合

                protected function getSubCommandHelp($controller, $actionID)
{
    $action = $controller->createAction($actionID);
    if ($action === null) {
        $name = $this->ansiFormat(rtrim($controller->getUniqueId() . '/' . $actionID, '/'), Console::FG_YELLOW);
        throw new Exception("No help for unknown sub-command \"$name\".");
    }
    $description = $controller->getActionHelp($action);
    if ($description !== '') {
        $this->stdout("\nDESCRIPTION\n", Console::BOLD);
        $this->stdout("\n$description\n\n");
    }
    $this->stdout("\nUSAGE\n\n", Console::BOLD);
    $scriptName = $this->getScriptName();
    if ($action->id === $controller->defaultAction) {
        $this->stdout($scriptName . ' ' . $this->ansiFormat($controller->getUniqueId(), Console::FG_YELLOW));
    } else {
        $this->stdout($scriptName . ' ' . $this->ansiFormat($action->getUniqueId(), Console::FG_YELLOW));
    }
    $args = $controller->getActionArgsHelp($action);
    foreach ($args as $name => $arg) {
        if ($arg['required']) {
            $this->stdout(' <' . $name . '>', Console::FG_CYAN);
        } else {
            $this->stdout(' [' . $name . ']', Console::FG_CYAN);
        }
    }
    $options = $controller->getActionOptionsHelp($action);
    $options[\yii\console\Application::OPTION_APPCONFIG] = [
        'type' => 'string',
        'default' => null,
        'comment' => "custom application configuration file path.\nIf not set, default application configuration is used.",
    ];
    ksort($options);
    if (!empty($options)) {
        $this->stdout(' [...options...]', Console::FG_RED);
    }
    $this->stdout("\n\n");
    if (!empty($args)) {
        foreach ($args as $name => $arg) {
            $this->stdout($this->formatOptionHelp(
                '- ' . $this->ansiFormat($name, Console::FG_CYAN),
                $arg['required'],
                $arg['type'],
                $arg['default'],
                $arg['comment']
            ) . "\n\n");
        }
    }
    if (!empty($options)) {
        $this->stdout("\nOPTIONS\n\n", Console::BOLD);
        foreach ($options as $name => $option) {
            $this->stdout($this->formatOptionHelp(
                $this->ansiFormat(
                    '--' . $name . $this->formatOptionAliases($controller, $name),
                    Console::FG_RED,
                    empty($option['required']) ? Console::FG_RED : Console::BOLD
                ),
                !empty($option['required']),
                $option['type'],
                $option['default'],
                $option['comment']
            ) . "\n\n");
        }
    }
}

            
getUniqueId() public メソッド

定義元: yii\base\Controller::getUniqueId()

コントローラーの一意のIDを返します。

public string getUniqueId ( )
return string

モジュールID(存在する場合)がプレフィックスとして付加されたコントローラーID。

                public function getUniqueId()
{
    return $this->module instanceof Application ? $this->id : $this->module->getUniqueId() . '/' . $this->id;
}

            
getView() public メソッド

定義元: yii\base\Controller::getView()

ビューまたはビューファイルのレンダリングに使用できるビューオブジェクトを返します。

render(), renderPartial() および renderFile() メソッドは、実際のビューのレンダリングを実装するために、このビューオブジェクトを使用します。設定されていない場合は、デフォルトで "view" アプリケーションコンポーネントになります。

public yii\base\View|yii\web\View getView ( )
return yii\base\View|yii\web\View

ビューまたはビューファイルのレンダリングに使用できるビューオブジェクト。

                public function getView()
{
    if ($this->_view === null) {
        $this->_view = Yii::$app->getView();
    }
    return $this->_view;
}

            
getViewPath() public メソッド

定義元: yii\base\Controller::getViewPath()

このコントローラーのビューファイルが含まれるディレクトリを返します。

デフォルトの実装では、コントローラ $id として名前が付けられたディレクトリを、$module$viewPath ディレクトリの下に返します。

public string getViewPath ( )
return string

このコントローラーのビューファイルが含まれるディレクトリ。

                public function getViewPath()
{
    if ($this->_viewPath === null) {
        $this->_viewPath = $this->module->getViewPath() . DIRECTORY_SEPARATOR . $this->id;
    }
    return $this->_viewPath;
}

            
hasEventHandlers() public メソッド

定義元: yii\base\Component::hasEventHandlers()

名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。

public boolean hasEventHandlers ( $name )
$name string

イベント名

return boolean

イベントにアタッチされたハンドラがあるかどうか。

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() public メソッド

定義元: yii\base\Component::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

メソッドは以下の場合に定義されます。

  • クラスが指定された名前のメソッドを持っている場合
  • 添付されたビヘイビアが、指定された名前のメソッドを持っている場合 ($checkBehaviors が true の場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name string

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか

return boolean

メソッドが定義されているかどうか

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasProperty() public メソッド

定義元: yii\base\Component::hasProperty()

このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。

プロパティは以下の場合に定義されます。

  • クラスが指定された名前に関連付けられたゲッターまたはセッターメソッドを持っている場合 (この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスが、指定された名前のメンバ変数を持っている場合 ($checkVars が true の場合)。
  • 添付されたビヘイビアが、指定された名前のプロパティを持っている場合 ($checkBehaviors が true の場合)。

参照

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}

            
init() public メソッド (バージョン 2.0.36 から利用可能)

定義元: yii\base\Controller::init()

オブジェクトを初期化します。

このメソッドは、オブジェクトが与えられた構成で初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
    parent::init();
    $this->request = Instance::ensure($this->request, Request::className());
    $this->response = Instance::ensure($this->response, Response::className());
}

            
isColorEnabled() public メソッド

定義元: yii\console\Controller::isColorEnabled()

ANSIカラーが有効かどうかを示す値を返します。

ANSI カラーは、$color が true に設定されているか、設定されておらず、ターミナルが ANSI カラーをサポートしている場合にのみ有効になります。

public boolean isColorEnabled ( $stream = \STDOUT )
$stream リソース

チェックするストリーム。

return boolean

出力で ANSI スタイルを有効にするかどうか。

                public function isColorEnabled($stream = \STDOUT)
{
    return $this->color === null ? Console::streamSupportsAnsiColors($stream) : $this->color;
}

            
off() public メソッド

定義元: yii\base\Component::off()

このコンポーネントから既存のイベントハンドラーをデタッチします。

このメソッドは on() の逆です。

注意: イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラのみが削除され、このワイルドカードに一致するプレーンな名前で登録されたハンドラは残ります。

on() も参照してください。

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラ。null の場合、名前付きイベントにアタッチされたすべてのハンドラが削除されます。

return boolean

ハンドラが見つかり、デタッチされた場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() public メソッド

定義元: yii\base\Component::on()

イベントにイベントハンドラーをアタッチします。

イベントハンドラは、有効な PHP コールバックである必要があります。以下にいくつかの例を示します。

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラは、以下のシグネチャで定義する必要があります。

function ($event)

ここで、$event はイベントに関連付けられたパラメータを含む yii\base\Event オブジェクトです。

2.0.14 以降では、ワイルドカードパターンとしてイベント名を指定できます。

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

off() も参照してください。

public void on ( $name, $handler, $data null, $append true )
$name string

イベント名

$handler callable

イベントハンドラ

$data mixed

イベントがトリガーされたときにイベントハンドラに渡されるデータ。イベントハンドラが呼び出されると、このデータは yii\base\Event::$data を介してアクセスできます。

$append boolean

新しいイベントハンドラを既存のハンドラリストの最後に追加するかどうか。false の場合、新しいハンドラは既存のハンドラリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
optionAliases() public メソッド (バージョン 2.0.8 から利用可能)

定義元: yii\console\Controller::optionAliases()

オプションのエイリアス名を返します。

子クラスはこのメソッドをオーバーライドして、エイリアスオプションを指定できます。

参照: options().

public array optionAliases ( )
return array

アクションで有効なオプションエイリアス名。キーはオプションのエイリアス名、値はオプション名です。

                public function optionAliases()
{
    return [
        'h' => 'help',
    ];
}

            
options() public メソッド

定義元: yii\console\Controller::options()

アクション(id)の有効なオプションの名前を返します。オプションには、名前がオプション名である public メンバー変数の存在が必要です。

子クラスはこのメソッドをオーバーライドして、可能なオプションを指定できます。

options を介して設定された値は、beforeAction() が呼び出されるまで利用できないことに注意してください。

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

現在のリクエストのアクションID

return string[]

アクションで有効なオプションの名前

                public function options($actionID)
{
    // $actionId might be used in subclasses to provide options specific to action id
    return ['color', 'interactive', 'help', 'silentExitOnException'];
}

            
parseDocCommentDetail() protected メソッド

定義元: yii\console\Controller::parseDocCommentDetail()

ドックブロックから完全な説明を返します。

protected string parseDocCommentDetail ( $reflection )
$reflection ReflectionClass|ReflectionProperty|ReflectionFunctionAbstract

                protected function parseDocCommentDetail($reflection)
{
    $comment = strtr(trim(preg_replace('/^\s*\**([ \t])?/m', '', trim($reflection->getDocComment(), '/'))), "\r", '');
    if (preg_match('/^\s*@\w+/m', $comment, $matches, PREG_OFFSET_CAPTURE)) {
        $comment = trim(substr($comment, 0, $matches[0][1]));
    }
    if ($comment !== '') {
        return rtrim(Console::renderColoredString(Console::markdownToAnsi($comment)));
    }
    return '';
}

            
parseDocCommentSummary() protected メソッド

定義元: yii\console\Controller::parseDocCommentSummary()

ドックブロックの最初の行を返します。

protected string parseDocCommentSummary ( $reflection )
$reflection ReflectionClass|ReflectionProperty|ReflectionFunctionAbstract

                protected function parseDocCommentSummary($reflection)
{
    $docLines = preg_split('~\R~u', $reflection->getDocComment());
    if (isset($docLines[1])) {
        return trim($docLines[1], "\t *");
    }
    return '';
}

            
parseDocCommentTags() protected メソッド

定義元: yii\console\Controller::parseDocCommentTags()

コメントブロックをタグに解析します。

protected array parseDocCommentTags ( $reflection )
$reflection ReflectionClass|ReflectionProperty|ReflectionFunctionAbstract

コメントブロック

return array

解析されたタグ

                protected function parseDocCommentTags($reflection)
{
    $comment = $reflection->getDocComment();
    $comment = "@description \n" . strtr(trim(preg_replace('/^\s*\**([ \t])?/m', '', trim($comment, '/'))), "\r", '');
    $parts = preg_split('/^\s*@/m', $comment, -1, PREG_SPLIT_NO_EMPTY);
    $tags = [];
    foreach ($parts as $part) {
        if (preg_match('/^(\w+)(.*)/ms', trim($part), $matches)) {
            $name = $matches[1];
            if (!isset($tags[$name])) {
                $tags[$name] = trim($matches[2]);
            } elseif (is_array($tags[$name])) {
                $tags[$name][] = trim($matches[2]);
            } else {
                $tags[$name] = [$tags[$name], trim($matches[2])];
            }
        }
    }
    return $tags;
}

            
prompt() public メソッド

定義元: yii\console\Controller::prompt()

ユーザーに入力を促し、それを検証します。

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

プロンプト文字列

$options array

入力を検証するためのオプション

  • required: 必須かどうか
  • default: ユーザーが何も入力しなかった場合のデフォルト値
  • pattern: ユーザー入力を検証するための正規表現パターン
  • validator: 入力を検証するための呼び出し可能な関数。関数は2つのパラメータを受け入れる必要があります
    • $input: 検証するユーザー入力
    • $error: 検証に失敗した場合に参照渡しされるエラー値。

検証関数を使用した prompt メソッドの使用例。

$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

ユーザー入力

                public function prompt($text, $options = [])
{
    if ($this->interactive) {
        return Console::prompt($text, $options);
    }
    return isset($options['default']) ? $options['default'] : '';
}

            
render() public メソッド

定義元: yii\base\Controller::render()

ビューをレンダリングし、利用可能な場合はレイアウトを適用します。

レンダリングされるビューは、次のいずれかの形式で指定できます。

  • パスエイリアス (例: "@app/views/site/index")。
  • アプリケーション内の絶対パス (例: "//site/index"): ビュー名はダブルスラッシュで始まります。実際のビューファイルは、アプリケーションのビューパスの下で検索されます。
  • モジュール内の絶対パス (例: "/site/index"): ビュー名はシングルスラッシュで始まります。実際のビューファイルは、$moduleビューパスの下で検索されます。
  • 相対パス (例: "index"): 実際のビューファイルは、$viewPathの下で検索されます。

適用するレイアウトを決定するために、次の2つの手順が実行されます。

  1. 最初のステップでは、レイアウト名とコンテキストモジュールを決定します。
  • $layoutが文字列として指定されている場合は、それをレイアウト名として使用し、$moduleをコンテキストモジュールとして使用します。
  • $layoutが null の場合は、このコントローラーのすべての上位モジュールを検索し、layout が null でない最初のモジュールを見つけます。レイアウトと対応するモジュールは、それぞれレイアウト名とコンテキストモジュールとして使用されます。そのようなモジュールが見つからない場合、または対応するレイアウトが文字列でない場合は、適用可能なレイアウトがないことを意味する false が返されます。
  1. 2番目のステップでは、前に見つけたレイアウト名とコンテキストモジュールに従って、実際のレイアウトファイルを決定します。レイアウト名は次のいずれかになります。
  • パスエイリアス (例: "@app/views/layouts/main")。
  • 絶対パス (例: "/main"): レイアウト名はスラッシュで始まります。実際のレイアウトファイルは、アプリケーションのレイアウトパスの下で検索されます。
  • 相対パス (例: "main"): 実際のレイアウトファイルは、コンテキストモジュールのレイアウトパスの下で検索されます。

レイアウト名にファイル拡張子が含まれていない場合は、デフォルトの .php が使用されます。

public string render ( $view, $params = [] )
$view string

ビュー名。

$params array

ビューで使用できるようにする必要があるパラメータ (名前と値のペア)。これらのパラメータは、レイアウトでは利用できません。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルまたはレイアウトファイルが存在しない場合。

                public function render($view, $params = [])
{
    $content = $this->getView()->render($view, $params, $this);
    return $this->renderContent($content);
}

            
renderContent() public メソッド (バージョン 2.0.1 から利用可能)

定義元: yii\base\Controller::renderContent()

レイアウトを適用して静的な文字列をレンダリングします。

public string renderContent ( $content )
$content string

レンダリングされる静的な文字列

return string

与えられた静的な文字列を $content 変数として使用したレイアウトのレンダリング結果。レイアウトが無効になっている場合は、文字列がそのまま返されます。

                public function renderContent($content)
{
    $layoutFile = $this->findLayoutFile($this->getView());
    if ($layoutFile !== false) {
        return $this->getView()->renderFile($layoutFile, ['content' => $content], $this);
    }
    return $content;
}

            
renderFile() public メソッド

定義元: yii\base\Controller::renderFile()

ビューファイルをレンダリングします。

public string renderFile ( $file, $params = [] )
$file string

レンダリングされるビューファイル。ファイルパスまたはパスエイリアスのいずれかを指定できます。

$params array

ビューで使用可能にするパラメータ (名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderFile($file, $params = [])
{
    return $this->getView()->renderFile($file, $params, $this);
}

            
renderPartial() public メソッド

定義元: yii\base\Controller::renderPartial()

レイアウトを適用せずにビューをレンダリングします。

このメソッドは、レイアウトを適用しない点でrender()とは異なります。

public string renderPartial ( $view, $params = [] )
$view string

ビュー名。ビュー名の指定方法については、render()を参照してください。

$params array

ビューで使用可能にするパラメータ (名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderPartial($view, $params = [])
{
    return $this->getView()->render($view, $params, $this);
}

            
run() public メソッド

定義元: yii\base\Controller::run()

ルートで指定されたリクエストを実行します。

ルートは、このコントローラ内のアクションのID、またはモジュールID、コントローラID、アクションIDから構成される完全なルートのいずれかです。ルートがスラッシュ '/' で始まる場合、ルートの解析はアプリケーションから開始されます。それ以外の場合は、このコントローラの親モジュールから開始されます。

runAction()も参照してください。

public mixed run ( $route, $params = [] )
$route string

処理されるルート。例: 'view', 'comment/view', '/admin/comment/view'。

$params array

アクションに渡されるパラメータ。

return mixed

アクションの結果。

                public function run($route, $params = [])
{
    $pos = strpos($route, '/');
    if ($pos === false) {
        return $this->runAction($route, $params);
    } elseif ($pos > 0) {
        return $this->module->runAction($route, $params);
    }
    return Yii::$app->runAction(ltrim($route, '/'), $params);
}

            
runAction() public メソッド

定義元: yii\console\Controller::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

不明なオプションまたは不足している引数がある場合

                public function runAction($id, $params = [])
{
    if (!empty($params)) {
        // populate options here so that they are available in beforeAction().
        $options = $this->options($id === '' ? $this->defaultAction : $id);
        if (isset($params['_aliases'])) {
            $optionAliases = $this->optionAliases();
            foreach ($params['_aliases'] as $name => $value) {
                if (array_key_exists($name, $optionAliases)) {
                    $params[$optionAliases[$name]] = $value;
                } else {
                    $message = Yii::t('yii', 'Unknown alias: -{name}', ['name' => $name]);
                    if (!empty($optionAliases)) {
                        $aliasesAvailable = [];
                        foreach ($optionAliases as $alias => $option) {
                            $aliasesAvailable[] = '-' . $alias . ' (--' . $option . ')';
                        }
                        $message .= '. ' . Yii::t('yii', 'Aliases available: {aliases}', [
                            'aliases' => implode(', ', $aliasesAvailable)
                        ]);
                    }
                    throw new Exception($message);
                }
            }
            unset($params['_aliases']);
        }
        foreach ($params as $name => $value) {
            // Allow camelCase options to be entered in kebab-case
            if (!in_array($name, $options, true) && strpos($name, '-') !== false) {
                $kebabName = $name;
                $altName = lcfirst(Inflector::id2camel($kebabName));
                if (in_array($altName, $options, true)) {
                    $name = $altName;
                }
            }
            if (in_array($name, $options, true)) {
                $default = $this->$name;
                if (is_array($default) && is_string($value)) {
                    $this->$name = preg_split('/\s*,\s*(?![^()]*\))/', $value);
                } elseif ($default !== null) {
                    settype($value, gettype($default));
                    $this->$name = $value;
                } else {
                    $this->$name = $value;
                }
                $this->_passedOptions[] = $name;
                unset($params[$name]);
                if (isset($kebabName)) {
                    unset($params[$kebabName]);
                }
            } elseif (!is_int($name)) {
                $message = Yii::t('yii', 'Unknown option: --{name}', ['name' => $name]);
                if (!empty($options)) {
                    $message .= '. ' . Yii::t('yii', 'Options available: {options}', ['options' => '--' . implode(', --', $options)]);
                }
                throw new Exception($message);
            }
        }
    }
    if ($this->help) {
        $route = $this->getUniqueId() . '/' . $id;
        return Yii::$app->runAction('help', [$route]);
    }
    return parent::runAction($id, $params);
}

            
select() public メソッド

定義元: yii\console\Controller::select()

ユーザーに選択肢を与えます。入力として '?' を指定すると、選択肢とその説明のリストが表示されます。

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

プロンプトメッセージ

$options array

選択肢のキーと値の配列

$default string|null

ユーザーがオプションを提供しない場合に使用する値。デフォルトが null の場合、ユーザーはオプションを選択する必要があります。

return string

ユーザーが選択したオプションの文字

バージョン 説明
2.0.49 $default引数が追加されました

                public function select($prompt, $options = [], $default = null)
{
    if ($this->interactive) {
        return Console::select($prompt, $options, $default);
    }
    return $default;
}

            
setView() public メソッド

定義元: yii\base\Controller::setView()

このコントローラーで使用するビューオブジェクトを設定します。

public void setView ( $view )
$view yii\base\View|yii\web\View

ビューまたはビューファイルのレンダリングに使用できるビューオブジェクト。

                public function setView($view)
{
    $this->_view = $view;
}

            
setViewPath() public メソッド (バージョン 2.0.7 以降)

定義元: yii\base\Controller::setViewPath()

ビューファイルが含まれるディレクトリを設定します。

public void setViewPath ( $path )
$path string

ビューファイルのルートディレクトリ。

throws yii\base\InvalidArgumentException

ディレクトリが無効な場合

                public function setViewPath($path)
{
    $this->_viewPath = Yii::getAlias($path);
}

            
stderr() public メソッド

定義元: yii\console\Controller::stderr()

STDERRに文字列を出力します。

yii\helpers\Consoleで定義された定数を使用して追加のパラメータを渡すことで、ANSIコードで文字列をフォーマットすることもできます。

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

出力する文字列

return integer|boolean

出力されたバイト数、またはエラーの場合はfalse

                public function stderr($string)
{
    if ($this->isColorEnabled(\STDERR)) {
        $args = func_get_args();
        array_shift($args);
        $string = Console::ansiFormat($string, $args);
    }
    return fwrite(\STDERR, $string);
}

            
stdout() public メソッド

定義元: yii\console\Controller::stdout()

STDOUTに文字列を出力します。

yii\helpers\Consoleで定義された定数を使用して追加のパラメータを渡すことで、ANSIコードで文字列をフォーマットすることもできます。

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

出力する文字列

return integer|boolean

出力されたバイト数、またはエラーの場合はfalse

                public function stdout($string)
{
    if ($this->isColorEnabled()) {
        $args = func_get_args();
        array_shift($args);
        $string = Console::ansiFormat($string, $args);
    }
    return Console::stdout($string);
}

            
trigger() public メソッド

定義元: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドはイベントの発生を表します。クラスレベルのハンドラを含む、イベントにアタッチされたすべてのハンドラを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名

$event yii\base\Event|null

イベントインスタンス。設定されていない場合、デフォルトのyii\base\Eventオブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
validateControllerClass() protected メソッド

指定されたクラスが有効なコンソールコントローラークラスであるかどうかを検証します。

protected boolean validateControllerClass ( $controllerClass )
$controllerClass string

                protected function validateControllerClass($controllerClass)
{
    if (class_exists($controllerClass)) {
        $class = new \ReflectionClass($controllerClass);
        return !$class->isAbstract() && $class->isSubclassOf('yii\console\Controller');
    }
    return false;
}