0 フォロワー

クラス yii\console\controllers\AssetController

継承yii\console\controllers\AssetController » 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/AssetController.php

JavaScriptファイルとCSSファイルを結合および圧縮できます。

使用方法

  1. templateアクションを使用して設定ファイルを作成します。

    yii asset/template /path/to/myapp/config.php

  2. 作成された設定ファイルを編集し、ウェブアプリケーションのニーズに合わせて調整します。
  3. 作成された設定を使用して'compress'アクションを実行します。

    yii asset /path/to/myapp/config.php /path/to/myapp/config/assets_compressed.php

  4. 圧縮されたアセットを使用するようにウェブアプリケーションの設定を調整します。

注:コンソール環境では、パスエイリアス@webroot@webなどは存在しない可能性があるため、設定ファイル内の対応するパスは直接指定する必要があります。

注:デフォルトでは、このコマンドは実際のファイル圧縮を実行するために外部ツールに依存しています。$jsCompressor$cssCompressorで詳細を確認してください。

公開プロパティ

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

プロパティ 説明 定義元
$action yii\base\Action|null 現在実行されているアクション。 yii\base\Controller
$assetManager yii\web\AssetManager アセットマネージャーインスタンス。 yii\console\controllers\AssetController
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$bundles array 圧縮されるアセットバンドルのリスト。 yii\console\controllers\AssetController
$color boolean|null 出力でANSIカラーを有効にするかどうか。 yii\console\Controller
$cssCompressor string|callable CSSファイル圧縮機。 yii\console\controllers\AssetController
$defaultAction string コントローラのデフォルトアクションID。 yii\console\controllers\AssetController
$deleteSource boolean 圧縮後にアセットソースファイルを削除するかどうか。 yii\console\controllers\AssetController
$help boolean 現在のコマンドに関するヘルプ情報を表示するかどうか。 yii\console\Controller
$helpSummary string yii\console\Controller
$id string このコントローラのID。 yii\base\Controller
$interactive boolean コマンドを対話的に実行するかどうか。 yii\console\Controller
$jsCompressor string|callable JavaScriptファイル圧縮機。 yii\console\controllers\AssetController
$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
$targets array 出力された圧縮ファイルを表現するアセットバンドルのリスト。 yii\console\controllers\AssetController
$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
actionCompress() 指定された設定に従って、アセットファイルを結合および圧縮します。 yii\console\controllers\AssetController
actionTemplate() actionCompress() の設定ファイルのテンプレートを作成します。 yii\console\controllers\AssetController
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
combineCssFiles() CSSファイルを1つに結合します。 yii\console\controllers\AssetController
combineJsFiles() JavaScriptファイルを1つに結合します。 yii\console\controllers\AssetController
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
getAssetManager() アセットマネージャーインスタンスを返します。 yii\console\controllers\AssetController
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
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)に対して有効なオプションの名前を返します。オプションには、オプション名と同じ名前のパブリックメンバ変数の存在が必要です。 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
setAssetManager() アセットマネージャインスタンスまたは設定を設定します。 yii\console\controllers\AssetController
setView() このコントローラで使用されるビューオブジェクトを設定します。 yii\base\Controller
setViewPath() ビューファイルを含むディレクトリを設定します。 yii\base\Controller
stderr() 文字列をSTDERRに出力します。 yii\console\Controller
stdout() 文字列をSTDOUTに出力します。 yii\console\Controller
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

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

メソッド 説明 定義元
adjustCssUrl() 元の資源を指すURL参照を許可するCSSコンテンツを調整します。 yii\console\controllers\AssetController
adjustDependency() ソースバンドルが出力バンドルに依存するようになるように、アセットバンドル間の依存関係を調整します。 yii\console\controllers\AssetController
bindInjectedParams() アクションメソッドシグネチャの型と名前に基づいてパラメータを入力します。 yii\base\Controller
buildTarget() 出力アセットバンドルを構築します。 yii\console\controllers\AssetController
compressCssFiles() 指定されたCSSファイルを圧縮し、1つのファイルに結合します。 yii\console\controllers\AssetController
compressJsFiles() 指定されたJavaScriptファイルを圧縮し、1つのファイルに結合します。 yii\console\controllers\AssetController
getActionMethodReflection() yii\console\Controller
loadBundles() ソースアセットバンドルの完全なリストを作成します。 yii\console\controllers\AssetController
loadConfiguration() 指定されたファイルからの設定を自分自身のインスタンスに適用します。 yii\console\controllers\AssetController
loadDependency() アセットバンドルの依存関係を再帰的に読み込みます。 yii\console\controllers\AssetController
loadTargets() 出力アセットバンドルの完全なリストを作成します。 yii\console\controllers\AssetController
parseDocCommentDetail() docblockから完全な説明を返します。 yii\console\Controller
parseDocCommentSummary() docblockの最初の行を返します。 yii\console\Controller
parseDocCommentTags() コメントブロックをタグに解析します。 yii\console\Controller
registerBundle() 依存関係を含むアセットバンドルを登録します。 yii\console\controllers\AssetController
saveTargets() 新しいアセットバンドル設定を保存します。 yii\console\controllers\AssetController

イベント

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

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

定数

継承された定数を非表示

定数 説明 定義元
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

プロパティの詳細

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

$assetManager public property

アセットマネージャインスタンス。このプロパティの型は、ゲッターとセッターで異なります。getAssetManager()setAssetManager()を参照してください。

$bundles public property

圧縮されるアセットバンドルのリスト。

public array $bundles = []
$cssCompressor public property

CSSファイル圧縮ツール。文字列の場合は、シェルコマンドテンプレートとして扱われ、{from}(ソースファイル名)と{to}(出力ファイル名)のプレースホルダーを含める必要があります。それ以外の場合は、PHPコールバックとして扱われ、圧縮を実行する必要があります。

デフォルト値は「YUI Compressor」の使用に基づいています。

こちらも参照してください https://github.com/yui/yuicompressor/.

public string|callable $cssCompressor 'java -jar yuicompressor.jar --type css {from} -o {to}'
$defaultAction public property

コントローラのデフォルトアクションID。

public string $defaultAction 'compress'
$deleteSource public property (available since version 2.0.10)

圧縮後にアセットソースファイルを削除するかどうか。このオプションは、yii\web\AssetBundle::$sourcePathが設定されているバンドルにのみ影響します。

public boolean $deleteSource false
$jsCompressor public property

JavaScriptファイル圧縮ツール。文字列の場合は、シェルコマンドテンプレートとして扱われ、{from}(ソースファイル名)と{to}(出力ファイル名)のプレースホルダーを含める必要があります。それ以外の場合は、PHPコールバックとして扱われ、圧縮を実行する必要があります。

デフォルト値は「Closure Compiler」の使用に基づいています。

こちらも参照してください https://developers.google.com/closure/compiler/.

public string|callable $jsCompressor 'java -jar compiler.jar --js {from} --js_output_file {to}'
$targets public property

出力圧縮ファイルを表すアセットバンドルのリスト。「css」と「js」キーを使用して、出力圧縮ファイルの名前を指定できます。例:

'app\config\AllAsset' => [
    'js' => 'js/all-{hash}.js',
    'css' => 'css/all-{hash}.css',
    'depends' => [ ... ],
]

ファイル名には、「{hash}」プレースホルダーを含めることができます。これは、結果ファイルのハッシュで置き換えられます。

異なるアセットグループを圧縮するために、複数のターゲットバンドルを指定できます。この場合、「depends」キーを使用して、特定のターゲットバンドルに含まれるバンドルを指定する必要があります。単一バンドルの場合は「depends」を空のままにすることができます。この場合、残りのすべてのバンドルが圧縮されます。例:

'allShared' => [
    'js' => 'js/all-shared-{hash}.js',
    'css' => 'css/all-shared-{hash}.css',
    'depends' => [
        // Include all assets shared between 'backend' and 'frontend'
        'yii\web\YiiAsset',
        'app\assets\SharedAsset',
    ],
],
'allBackEnd' => [
    'js' => 'js/all-{hash}.js',
    'css' => 'css/all-{hash}.css',
    'depends' => [
        // Include only 'backend' assets:
        'app\assets\AdminAsset'
    ],
],
'allFrontEnd' => [
    'js' => 'js/all-{hash}.js',
    'css' => 'css/all-{hash}.css',
    'depends' => [], // Include all remaining assets
],
public array $targets = []

メソッドの詳細

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

__call() public method

定義場所: yii\base\Component::__call()

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

このメソッドは、アタッチされたビヘイビアに指定されたメソッドがあるかどうかをチェックし、あれば実行します。

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

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

メソッド名

$params array

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 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メソッド

定義済み: yii\base\Component::__clone()

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

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

public void __clone ( )

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

            
__construct() publicメソッド
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メソッド

定義済み: yii\base\Component::__get()

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

このメソッドは、以下の順序でチェックし、それに応じて動作します。

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

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

参照:__set().

public mixed __get ( $name )
$name string

プロパティ名

戻り値 mixed

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

例外 yii\base\UnknownPropertyException

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

例外 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`を返す

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

参照:https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name string

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

戻り値 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"という名前のビヘイビアをアタッチする
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を設定する

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

参照:__get().

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

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

$value mixed

プロパティ値

例外 yii\base\UnknownPropertyException

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

例外 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にする

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

参照:https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name string

プロパティ名

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

            
actionCompress() publicメソッド

指定された設定に従って、アセットファイルを結合および圧縮します。

この処理中に、新しいアセットバンドルの設定ファイルが作成されます。圧縮されたファイルを使用するには、元のasset bundle設定をこのファイルで置き換える必要があります。

public void actionCompress ( $configFile, $bundleFile )
$configFile string

設定ファイル名。

$bundleFile string

出力アセットバンドル設定ファイル名。

                public function actionCompress($configFile, $bundleFile)
{
    $this->loadConfiguration($configFile);
    $bundles = $this->loadBundles($this->bundles);
    $targets = $this->loadTargets($this->targets, $bundles);
    foreach ($targets as $name => $target) {
        $this->stdout("Creating output bundle '{$name}':\n");
        if (!empty($target->js)) {
            $this->buildTarget($target, 'js', $bundles);
        }
        if (!empty($target->css)) {
            $this->buildTarget($target, 'css', $bundles);
        }
        $this->stdout("\n");
    }
    $targets = $this->adjustDependency($targets, $bundles);
    $this->saveTargets($targets, $bundleFile);
    if ($this->deleteSource) {
        $this->deletePublishedAssets($bundles);
    }
}

            
actionTemplate() publicメソッド

actionCompress() の設定ファイルのテンプレートを作成します。

public integer actionTemplate ( $configFile )
$configFile string

出力ファイル名。

戻り値 integer

CLI終了コード

例外 yii\console\Exception

失敗時。

                public function actionTemplate($configFile)
{
    $jsCompressor = VarDumper::export($this->jsCompressor);
    $cssCompressor = VarDumper::export($this->cssCompressor);
    $template = <<<EOD
p
onfiguration file for the "yii asset" console command.
n the console environment, some path aliases may not exist. Please define these:
ii::setAlias('@webroot', __DIR__ . '/../web');
ii::setAlias('@web', '/');
rn [
// Adjust command/callback for JavaScript files compressing:
'jsCompressor' => {$jsCompressor},
// Adjust command/callback for CSS files compressing:
'cssCompressor' => {$cssCompressor},
// Whether to delete asset source after compression:
'deleteSource' => false,
// The list of asset bundles to compress:
'bundles' => [
    // 'app\assets\AppAsset',
    // 'yii\web\YiiAsset',
    // 'yii\web\JqueryAsset',
],
// Asset bundle for compression output:
'targets' => [
    'all' => [
        'class' => 'yii\web\AssetBundle',
        'basePath' => '@webroot/assets',
        'baseUrl' => '@web/assets',
        'js' => 'js/all-{hash}.js',
        'css' => 'css/all-{hash}.css',
    ],
],
// Asset manager configuration:
'assetManager' => [
    //'basePath' => '@webroot/assets',
    //'baseUrl' => '@web/assets',
],

    if (file_exists($configFile)) {
        if (!$this->confirm("File '{$configFile}' already exists. Do you wish to overwrite it?")) {
            return ExitCode::OK;
        }
    }
    if (!file_put_contents($configFile, $template, LOCK_EX)) {
        throw new Exception("Unable to write template file '{$configFile}'.");
    }
    $this->stdout("Configuration file template created at '{$configFile}'.\n\n", Console::FG_GREEN);
    return ExitCode::OK;
}

            
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 [];
}

            
adjustCssUrl() protectedメソッド

元の資源を指すURL参照を許可するCSSコンテンツを調整します。

protected string adjustCssUrl ( $cssContent, $inputFilePath, $outputFilePath )
$cssContent string

ソースCSSコンテンツ。

$inputFilePath string

入力CSSファイル名。

$outputFilePath string

出力CSSファイル名。

戻り値 string

調整済みCSSコンテンツ。

                protected function adjustCssUrl($cssContent, $inputFilePath, $outputFilePath)
{
    $inputFilePath = str_replace('\\', '/', $inputFilePath);
    $outputFilePath = str_replace('\\', '/', $outputFilePath);
    $sharedPathParts = [];
    $inputFilePathParts = explode('/', $inputFilePath);
    $inputFilePathPartsCount = count($inputFilePathParts);
    $outputFilePathParts = explode('/', $outputFilePath);
    $outputFilePathPartsCount = count($outputFilePathParts);
    for ($i = 0; $i < $inputFilePathPartsCount && $i < $outputFilePathPartsCount; $i++) {
        if ($inputFilePathParts[$i] == $outputFilePathParts[$i]) {
            $sharedPathParts[] = $inputFilePathParts[$i];
        } else {
            break;
        }
    }
    $sharedPath = implode('/', $sharedPathParts);
    $inputFileRelativePath = trim(str_replace($sharedPath, '', $inputFilePath), '/');
    $outputFileRelativePath = trim(str_replace($sharedPath, '', $outputFilePath), '/');
    if (empty($inputFileRelativePath)) {
        $inputFileRelativePathParts = [];
    } else {
        $inputFileRelativePathParts = explode('/', $inputFileRelativePath);
    }
    if (empty($outputFileRelativePath)) {
        $outputFileRelativePathParts = [];
    } else {
        $outputFileRelativePathParts = explode('/', $outputFileRelativePath);
    }
    $callback = function ($matches) use ($inputFileRelativePathParts, $outputFileRelativePathParts) {
        $fullMatch = $matches[0];
        $inputUrl = $matches[1];
        if (strncmp($inputUrl, '/', 1) === 0 || strncmp($inputUrl, '#', 1) === 0 || preg_match('/^https?:\/\//i', $inputUrl) || preg_match('/^data:/i', $inputUrl)) {
            return $fullMatch;
        }
        if ($inputFileRelativePathParts === $outputFileRelativePathParts) {
            return $fullMatch;
        }
        if (empty($outputFileRelativePathParts)) {
            $outputUrlParts = [];
        } else {
            $outputUrlParts = array_fill(0, count($outputFileRelativePathParts), '..');
        }
        $outputUrlParts = array_merge($outputUrlParts, $inputFileRelativePathParts);
        if (strpos($inputUrl, '/') !== false) {
            $inputUrlParts = explode('/', $inputUrl);
            foreach ($inputUrlParts as $key => $inputUrlPart) {
                if ($inputUrlPart === '..') {
                    array_pop($outputUrlParts);
                    unset($inputUrlParts[$key]);
                }
            }
            $outputUrlParts[] = implode('/', $inputUrlParts);
        } else {
            $outputUrlParts[] = $inputUrl;
        }
        $outputUrl = implode('/', $outputUrlParts);
        return str_replace($inputUrl, $outputUrl, $fullMatch);
    };
    $cssContent = preg_replace_callback('/url\(["\']?([^)^"\']*)["\']?\)/i', $callback, $cssContent);
    return $cssContent;
}

            
adjustDependency() protectedメソッド

ソースバンドルが出力バンドルに依存するようになるように、アセットバンドル間の依存関係を調整します。

protected yii\web\AssetBundle[] adjustDependency ( $targets, $bundles )
$targets yii\web\AssetBundle[]

出力アセットバンドル。

$bundles yii\web\AssetBundle[]

ソースアセットバンドル。

戻り値 yii\web\AssetBundle[]

出力アセットバンドル。

                protected function adjustDependency($targets, $bundles)
{
    $this->stdout("Creating new bundle configuration...\n");
    $map = [];
    foreach ($targets as $name => $target) {
        foreach ($target->depends as $bundle) {
            $map[$bundle] = $name;
        }
    }
    foreach ($targets as $name => $target) {
        $depends = [];
        foreach ($target->depends as $bn) {
            foreach ($bundles[$bn]->depends as $bundle) {
                $depends[$map[$bundle]] = true;
            }
        }
        unset($depends[$name]);
        $target->depends = array_keys($depends);
    }
    // detect possible circular dependencies
    foreach ($targets as $name => $target) {
        $registered = [];
        $this->registerBundle($targets, $name, $registered);
    }
    foreach ($map as $bundle => $target) {
        $sourceBundle = $bundles[$bundle];
        $depends = $sourceBundle->depends;
        if (!$this->isBundleExternal($sourceBundle)) {
            $depends[] = $target;
        }
        $targetBundle = clone $sourceBundle;
        $targetBundle->depends = $depends;
        $targets[$bundle] = $targetBundle;
    }
    return $targets;
}

            
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

アクションの戻り値。

戻り値 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メソッド

定義位置: 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() に渡されるオブジェクト設定配列。
戻り値 yii\base\Behavior

ビヘイビアオブジェクト

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

            
attachBehaviors() publicメソッド

定義位置: 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メソッド

定義位置: 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

実行するアクション。

戻り値 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メソッド

定義位置: yii\base\Component::behaviors()

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

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

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

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

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

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

public array behaviors ( )
戻り値 array

ビヘイビアの設定。

                public function behaviors()
{
    return [];
}

            
bindActionParams() publicメソッド

定義位置: yii\console\Controller::bindActionParams()

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

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

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

パラメーターとバインドするアクション。

$params array

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

戻り値 array

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

例外 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メソッド (バージョン2.0.36以降で使用可能)

定義位置: yii\base\Controller::bindInjectedParams()

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

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

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

$name string

パラメーターの名前。

$args array

アクションの引数の配列。この関数は、アイテムを追加することがあります。

$requestedParams array

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

例外 yii\base\ErrorException

必要なサービスを読み込めなかった場合。

例外 yii\base\InvalidConfigException

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

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

            
buildTarget() protected メソッド

出力アセットバンドルを構築します。

protected void buildTarget ( $target, $type, $bundles )
$target yii\web\AssetBundle

出力アセットバンドル

$type string

'js' または 'css' のいずれか。

$bundles yii\web\AssetBundle[]

ソースアセットバンドル。

例外 yii\console\Exception

失敗時。

                protected function buildTarget($target, $type, $bundles)
{
    $inputFiles = [];
    foreach ($target->depends as $name) {
        if (isset($bundles[$name])) {
            if (!$this->isBundleExternal($bundles[$name])) {
                foreach ($bundles[$name]->$type as $file) {
                    if (is_array($file)) {
                        $inputFiles[] = $bundles[$name]->basePath . '/' . $file[0];
                    } else {
                        $inputFiles[] = $bundles[$name]->basePath . '/' . $file;
                    }
                }
            }
        } else {
            throw new Exception("Unknown bundle: '{$name}'");
        }
    }
    if (empty($inputFiles)) {
        $target->$type = [];
    } else {
        FileHelper::createDirectory($target->basePath, $this->getAssetManager()->dirMode);
        $tempFile = $target->basePath . '/' . strtr($target->$type, ['{hash}' => 'temp']);
        if ($type === 'js') {
            $this->compressJsFiles($inputFiles, $tempFile);
        } else {
            $this->compressCssFiles($inputFiles, $tempFile);
        }
        $targetFile = strtr($target->$type, ['{hash}' => md5_file($tempFile)]);
        $outputFile = $target->basePath . '/' . $targetFile;
        rename($tempFile, $outputFile);
        $target->$type = [$targetFile];
    }
}

            
canGetProperty() public メソッド

定義されている場所: yii\base\Component::canGetProperty()

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

プロパティは、以下の場合に読み取り可能です。

  • クラスに、指定された名前と関連付けられたゲッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合($checkVars が true の場合)。
  • アタッチされたビヘイビアに、指定された名前の読み取り可能なプロパティがある場合($checkBehaviors が true の場合)。

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

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 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

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

戻り値 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 ( )
戻り値 string

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

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

            
combineCssFiles() public メソッド

CSSファイルを1つに結合します。

public void combineCssFiles ( $inputFiles, $outputFile )
$inputFiles array

ソースファイル名。

$outputFile string

出力ファイル名。

例外 yii\console\Exception

失敗時。

                public function combineCssFiles($inputFiles, $outputFile)
{
    $content = '';
    $outputFilePath = dirname($this->findRealPath($outputFile));
    foreach ($inputFiles as $file) {
        $content .= "/*** BEGIN FILE: $file ***/\n"
            . $this->adjustCssUrl(file_get_contents($file), dirname($this->findRealPath($file)), $outputFilePath)
            . "/*** END FILE: $file ***/\n";
    }
    if (!file_put_contents($outputFile, $content)) {
        throw new Exception("Unable to write output CSS file '{$outputFile}'.");
    }
}

            
combineJsFiles() public メソッド

JavaScriptファイルを1つに結合します。

public void combineJsFiles ( $inputFiles, $outputFile )
$inputFiles array

ソースファイル名。

$outputFile string

出力ファイル名。

例外 yii\console\Exception

失敗時。

                public function combineJsFiles($inputFiles, $outputFile)
{
    $content = '';
    foreach ($inputFiles as $file) {
        // Add a semicolon to source code if trailing semicolon missing.
        // Notice: It needs a new line before `;` to avoid affection of line comment. (// ...;)
        $fileContent = rtrim(file_get_contents($file));
        if (substr($fileContent, -1) !== ';') {
            $fileContent .= "\n;";
        }
        $content .= "/*** BEGIN FILE: $file ***/\n"
            . $fileContent . "\n"
            . "/*** END FILE: $file ***/\n";
    }
    if (!file_put_contents($outputFile, $content)) {
        throw new Exception("Unable to write output JavaScript file '{$outputFile}'.");
    }
}

            
compressCssFiles() protected メソッド

指定されたCSSファイルを圧縮し、1つのファイルに結合します。

protected void compressCssFiles ( $inputFiles, $outputFile )
$inputFiles array

ソースファイル名のリスト。

$outputFile string

出力ファイル名。

例外 yii\console\Exception

失敗時

                protected function compressCssFiles($inputFiles, $outputFile)
{
    if (empty($inputFiles)) {
        return;
    }
    $this->stdout("  Compressing CSS files...\n");
    if (is_string($this->cssCompressor)) {
        $tmpFile = $outputFile . '.tmp';
        $this->combineCssFiles($inputFiles, $tmpFile);
        $this->stdout((string)shell_exec(strtr($this->cssCompressor, [
            '{from}' => escapeshellarg($tmpFile),
            '{to}' => escapeshellarg($outputFile),
        ])));
        @unlink($tmpFile);
    } else {
        call_user_func($this->cssCompressor, $this, $inputFiles, $outputFile);
    }
    if (!file_exists($outputFile)) {
        throw new Exception("Unable to compress CSS files into '{$outputFile}'.");
    }
    $this->stdout("  CSS files compressed into '{$outputFile}'.\n");
}

            
compressJsFiles() protected メソッド

指定されたJavaScriptファイルを圧縮し、1つのファイルに結合します。

protected void compressJsFiles ( $inputFiles, $outputFile )
$inputFiles array

ソースファイル名のリスト。

$outputFile string

出力ファイル名。

例外 yii\console\Exception

失敗時

                protected function compressJsFiles($inputFiles, $outputFile)
{
    if (empty($inputFiles)) {
        return;
    }
    $this->stdout("  Compressing JavaScript files...\n");
    if (is_string($this->jsCompressor)) {
        $tmpFile = $outputFile . '.tmp';
        $this->combineJsFiles($inputFiles, $tmpFile);
        $this->stdout((string)shell_exec(strtr($this->jsCompressor, [
            '{from}' => escapeshellarg($tmpFile),
            '{to}' => escapeshellarg($outputFile),
        ])));
        @unlink($tmpFile);
    } else {
        call_user_func($this->jsCompressor, $this, $inputFiles, $outputFile);
    }
    if (!file_exists($outputFile)) {
        throw new Exception("Unable to compress JavaScript files into '{$outputFile}'.");
    }
    $this->stdout("  JavaScript files compressed into '{$outputFile}'.\n");
}

            
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

選択が行われなかった場合に返される値。

戻り値 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()で宣言されているかどうかをチェックします。もし宣言されていれば、そこで宣言された設定を使用してアクションオブジェクトを作成します。そうでない場合は、アクションIDが`xyz`である`actionXyz`形式の、コントローラーメソッドを探します。見つかった場合、そのメソッドを表すyii\base\InlineActionが作成され、返されます。

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

アクションID。

戻り値 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

ビヘイビアの名前。

戻り値 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

レイアウトファイルを描画するビューオブジェクト。

戻り値 string|boolean

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

例外 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;
}

            
getActionArgsHelp() public メソッド

定義場所: yii\console\Controller::getActionArgsHelp()

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

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

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

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

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

アクションインスタンス

戻り値 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

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

戻り値 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

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

戻り値 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, この引数のコメント

デフォルトの実装では、アクションオプションに対応するプロパティのdoc-commentから抽出されたヘルプ情報を返します。

public array getActionOptionsHelp ( $action )
$action yii\base\Action
戻り値 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;
}

            
getAssetManager() public メソッド

アセットマネージャーインスタンスを返します。

public yii\web\AssetManager getAssetManager ( )
戻り値 yii\web\AssetManager

アセットマネージャーインスタンス。

例外 yii\console\Exception

無効な設定の場合。

                public function getAssetManager()
{
    if (!is_object($this->_assetManager)) {
        $options = $this->_assetManager;
        if (!isset($options['class'])) {
            $options['class'] = 'yii\\web\\AssetManager';
        }
        if (!isset($options['basePath'])) {
            throw new Exception("Please specify 'basePath' for the 'assetManager' option.");
        }
        if (!isset($options['baseUrl'])) {
            throw new Exception("Please specify 'baseUrl' for the 'assetManager' option.");
        }
        if (!isset($options['forceCopy'])) {
            $options['forceCopy'] = true;
        }
        $this->_assetManager = Yii::createObject($options);
    }
    return $this->_assetManager;
}

            
getBehavior() public メソッド

定義場所: yii\base\Component::getBehavior()

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

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

ビヘイビア名

戻り値 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 ( )
戻り値 yii\base\Behavior[]

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

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

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

            
getModules() public メソッド

定義場所: yii\base\Controller::getModules()

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

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

public yii\base\Module[] getModules ( )
戻り値 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

戻り値 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 ( )
戻り値 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 ( )
戻り値 array

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

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

            
getRoute() public メソッド

定義場所: yii\base\Controller::getRoute()

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

public string getRoute ( )
戻り値 string

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

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

            
getUniqueId() public メソッド

定義場所: yii\base\Controller::getUniqueId()

コントローラのユニークIDを返します。

public string getUniqueId ( )
戻り値 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 ( )
戻り値 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 ( )
戻り値 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

イベント名

戻り値 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

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

戻り値 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

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

戻り値 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 リソース

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

戻り値 boolean

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

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

            
loadBundles() protected メソッド

ソースアセットバンドルの完全なリストを作成します。

protected yii\web\AssetBundle[] loadBundles ( $bundles )
$bundles string[]

アセットバンドル名のリスト

戻り値 yii\web\AssetBundle[]

ソースアセットバンドルのリスト。

                protected function loadBundles($bundles)
{
    $this->stdout("Collecting source bundles information...\n");
    $am = $this->getAssetManager();
    $result = [];
    foreach ($bundles as $name) {
        $result[$name] = $am->getBundle($name);
    }
    foreach ($result as $bundle) {
        $this->loadDependency($bundle, $result);
    }
    return $result;
}

            
loadConfiguration() protected メソッド

指定されたファイルからの設定を自分自身のインスタンスに適用します。

protected void loadConfiguration ( $configFile )
$configFile string

設定ファイル名。

例外 yii\console\Exception

失敗時。

                protected function loadConfiguration($configFile)
{
    $this->stdout("Loading configuration from '{$configFile}'...\n");
    $config = require $configFile;
    foreach ($config as $name => $value) {
        if (property_exists($this, $name) || $this->canSetProperty($name)) {
            $this->$name = $value;
        } else {
            throw new Exception("Unknown configuration option: $name");
        }
    }
    $this->getAssetManager(); // check if asset manager configuration is correct
}

            
loadDependency() protected メソッド

アセットバンドルの依存関係を再帰的に読み込みます。

protected void loadDependency ( $bundle, &$result )
$bundle yii\web\AssetBundle

バンドルインスタンス

$result array

既にロード済みのバンドルのリスト。

例外 yii\console\Exception

失敗時。

                protected function loadDependency($bundle, &$result)
{
    $am = $this->getAssetManager();
    foreach ($bundle->depends as $name) {
        if (!isset($result[$name])) {
            $dependencyBundle = $am->getBundle($name);
            $result[$name] = false;
            $this->loadDependency($dependencyBundle, $result);
            $result[$name] = $dependencyBundle;
        } elseif ($result[$name] === false) {
            throw new Exception("A circular dependency is detected for bundle '{$name}': " . $this->composeCircularDependencyTrace($name, $result) . '.');
        }
    }
}

            
loadTargets() protected メソッド

出力アセットバンドルの完全なリストを作成します。

protected yii\web\AssetBundle[] loadTargets ( $targets, $bundles )
$targets array

出力アセットバンドル設定。

$bundles yii\web\AssetBundle[]

ソースアセットバンドルのリスト。

戻り値 yii\web\AssetBundle[]

出力アセットバンドルのリスト。

例外 yii\console\Exception

失敗時。

                protected function loadTargets($targets, $bundles)
{
    // build the dependency order of bundles
    $registered = [];
    foreach ($bundles as $name => $bundle) {
        $this->registerBundle($bundles, $name, $registered);
    }
    $bundleOrders = array_combine(array_keys($registered), range(0, count($bundles) - 1));
    // fill up the target which has empty 'depends'.
    $referenced = [];
    foreach ($targets as $name => $target) {
        if (empty($target['depends'])) {
            if (!isset($all)) {
                $all = $name;
            } else {
                throw new Exception("Only one target can have empty 'depends' option. Found two now: $all, $name");
            }
        } else {
            foreach ($target['depends'] as $bundle) {
                if (!isset($referenced[$bundle])) {
                    $referenced[$bundle] = $name;
                } else {
                    throw new Exception("Target '{$referenced[$bundle]}' and '$name' cannot contain the bundle '$bundle' at the same time.");
                }
            }
        }
    }
    if (isset($all)) {
        $targets[$all]['depends'] = array_diff(array_keys($registered), array_keys($referenced));
    }
    // adjust the 'depends' order for each target according to the dependency order of bundles
    // create an AssetBundle object for each target
    foreach ($targets as $name => $target) {
        if (!isset($target['basePath'])) {
            throw new Exception("Please specify 'basePath' for the '$name' target.");
        }
        if (!isset($target['baseUrl'])) {
            throw new Exception("Please specify 'baseUrl' for the '$name' target.");
        }
        usort($target['depends'], function ($a, $b) use ($bundleOrders) {
            if ($bundleOrders[$a] == $bundleOrders[$b]) {
                return 0;
            }
            return $bundleOrders[$a] > $bundleOrders[$b] ? 1 : -1;
        });
        if (!isset($target['class'])) {
            $target['class'] = $name;
        }
        $targets[$name] = Yii::createObject($target);
    }
    return $targets;
}

            
off() public メソッド

定義場所: yii\base\Component::off()

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

このメソッドは、on()の反対の動作をします。

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

参照 on().

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

イベント名

$handler callable|null

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

戻り値 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 ( )
戻り値 array

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

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

            
options() public メソッド

定義場所: yii\console\Controller::options()

アクション(ID)に対して有効なオプションの名前を返します。オプションには、オプション名と同じ名前のパブリックメンバ変数の存在が必要です。

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

オプションで設定された値は、beforeAction() が呼び出されるまで使用できませんのでご注意ください。

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

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

戻り値 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()

docblockから完全な説明を返します。

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()

docblockの最初の行を返します。

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

コメントブロック

戻り値 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;
}]);
戻り値 string

ユーザー入力

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

            
registerBundle() protected メソッド

依存関係を含むアセットバンドルを登録します。

protected void registerBundle ( $bundles, $name, &$registered )
$bundles yii\web\AssetBundle[]

アセットバンドルのリスト。

$name string

バンドル名。

$registered array

既に登録されている名前を格納します。

例外 yii\console\Exception

循環依存関係が検出された場合。

                protected function registerBundle($bundles, $name, &$registered)
{
    if (!isset($registered[$name])) {
        $registered[$name] = false;
        $bundle = $bundles[$name];
        foreach ($bundle->depends as $depend) {
            $this->registerBundle($bundles, $depend, $registered);
        }
        unset($registered[$name]);
        $registered[$name] = $bundle;
    } elseif ($registered[$name] === false) {
        throw new Exception("A circular dependency is detected for target '{$name}': " . $this->composeCircularDependencyTrace($name, $registered) . '.');
    }
}

            
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

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

戻り値 string

レンダリング結果。

例外 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

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

戻り値 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

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

戻り値 string

レンダリング結果。

例外 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

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

戻り値 string

レンダリング結果。

例外 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

アクションに渡すパラメータです。

戻り値 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

アクションに渡すパラメータ(名前と値のペア)です。

戻り値 integer

アクション実行の状態です。0は正常、それ以外の値は異常です。

例外 yii\base\InvalidRouteException

要求されたアクションIDをアクションに正常に解決できない場合。

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

            
saveTargets() protected メソッド

新しいアセットバンドル設定を保存します。

protected void saveTargets ( $targets, $bundleFile )
$targets yii\web\AssetBundle[]

保存するアセットバンドルのリストです。

$bundleFile string

出力ファイル名。

例外 yii\console\Exception

失敗時。

                protected function saveTargets($targets, $bundleFile)
{
    $array = [];
    foreach ($targets as $name => $target) {
        if (isset($this->targets[$name])) {
            $array[$name] = array_merge($this->targets[$name], [
                'class' => get_class($target),
                'sourcePath' => null,
                'basePath' => $this->targets[$name]['basePath'],
                'baseUrl' => $this->targets[$name]['baseUrl'],
                'js' => $target->js,
                'css' => $target->css,
                'depends' => [],
            ]);
        } else {
            if ($this->isBundleExternal($target)) {
                $array[$name] = $this->composeBundleConfig($target);
            } else {
                $array[$name] = [
                    'sourcePath' => null,
                    'js' => [],
                    'css' => [],
                    'depends' => $target->depends,
                ];
            }
        }
    }
    $array = VarDumper::export($array);
    $version = date('Y-m-d H:i:s');
    $bundleFileContent = <<<EOD
p
his file is generated by the "yii {$this->id}" command.
O NOT MODIFY THIS FILE DIRECTLY.
version {$version}
rn {$array};

    if (!file_put_contents($bundleFile, $bundleFileContent, LOCK_EX)) {
        throw new Exception("Unable to write output bundle configuration at '{$bundleFile}'.");
    }
    $this->stdout("Output bundle configuration created at '{$bundleFile}'.\n", Console::FG_GREEN);
}

            
select() public メソッド

定義場所: yii\console\Controller::select()

ユーザーに選択肢を選択させます。「?」を入力すると、選択肢とその説明が表示されます。

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

プロンプトメッセージ

$options array

選択可能なオプションのキーと値の配列

$default string|null

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

戻り値 string

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

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

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

            
setAssetManager() public メソッド

アセットマネージャインスタンスまたは設定を設定します。

public void setAssetManager ( $assetManager )
$assetManager yii\web\AssetManager|array

アセットマネージャインスタンスまたはその配列設定です。

例外 yii\console\Exception

無効な引数型の場合。

                public function setAssetManager($assetManager)
{
    if (is_scalar($assetManager)) {
        throw new Exception('"' . get_class($this) . '::assetManager" should be either object or array - "' . gettype($assetManager) . '" given.');
    }
    $this->_assetManager = $assetManager;
}

            
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

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

例外 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

出力する文字列です。

戻り値 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

出力する文字列です。

戻り値 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);
}