0 follower

クラス yii\console\widgets\Table

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

Tableクラスはコンソールにテーブルを表示します。

例:

$table = new Table();

echo $table
    ->setHeaders(['test1', 'test2', 'test3'])
    ->setRows([
        ['col1', 'col2', 'col3'],
        ['col1', 'col2', ['col3-0', 'col3-1', 'col3-2']],
    ])
    ->run();

または

echo Table::widget([
    'headers' => ['test1', 'test2', 'test3'],
    'rows' => [
        ['col1', 'col2', 'col3'],
        ['col1', 'col2', ['col3-0', 'col3-1', 'col3-2']],
    ],
]);

公開プロパティ

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

プロパティ 説明 定義元
$autoIdPrefix string 自動生成されるウィジェットIDのプレフィックス。 yii\base\Widget
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$chars array テーブルの文字 yii\console\widgets\Table
$columnWidths array テーブルの列幅 yii\console\widgets\Table
$headers array テーブルのヘッダー yii\console\widgets\Table
$id string|null ウィジェットのID。 yii\base\Widget
$listPrefix string リストのプレフィックス yii\console\widgets\Table
$rows array テーブルの行 yii\console\widgets\Table
$screenWidth integer 画面幅 yii\console\widgets\Table
$view yii\web\View ビューやビューファイルをレンダリングするために使用できるビューオブジェクト。 yii\base\Widget
$viewPath string このウィジェットのビューファイルを含むディレクトリ。 yii\base\Widget

保護されたプロパティ

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

プロパティ 説明 定義元

公開メソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトを複製してオブジェクトが作成された後に呼び出されます。 yii\base\Component
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントのプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているか(つまり、定義されていてnullでないか)を確認します。 yii\base\Component
__set() コンポーネントのプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントのプロパティをnullに設定します。 yii\base\Component
afterRun() このメソッドは、ウィジェットが実行された直後に呼び出されます。 yii\base\Widget
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeRun() このメソッドは、ウィジェットが実行される直前に呼び出されます。 yii\base\Widget
begin() ウィジェットを開始します。 yii\base\Widget
behaviors() このコンポーネントがビヘイビアとして動作すべきビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
end() ウィジェットを終了します。 yii\base\Widget
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされたすべてのビヘイビアを返します。 yii\base\Component
getId() ウィジェットのIDを返します。 yii\base\Widget
getView() ビューやビューファイルをレンダリングするために使用できるビューオブジェクトを返します。 yii\base\Widget
getViewPath() このウィジェットのビューファイルを含むディレクトリを返します。 yii\base\Widget
hasEventHandlers() 名前付きイベントにアタッチされたハンドラーがあるかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\base\Widget
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
render() ビューをレンダリングします。 yii\base\Widget
renderFile() ビューファイルをレンダリングします。 yii\base\Widget
run() yii\console\widgets\Table
setChars() テーブルの文字を設定します。 yii\console\widgets\Table
setHeaders() テーブルのヘッダーを設定します。 yii\console\widgets\Table
setId() ウィジェットのIDを設定します。 yii\base\Widget
setListPrefix() リストのプレフィックスを設定します。 yii\console\widgets\Table
setRows() テーブルの行を設定します。 yii\console\widgets\Table
setScreenWidth() 画面幅を設定します。 yii\console\widgets\Table
setView() このウィジェットで使用するビューオブジェクトを設定します。 yii\base\Widget
trigger() イベントをトリガーします。 yii\base\Component
widget() ウィジェットのインスタンスを作成して実行します。 yii\base\Widget

保護されたメソッド

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

メソッド 説明 定義元
calculateRowHeight() 行の高さを計算します。 yii\console\widgets\Table
calculateRowsSize() コンソールで列のアンカーを描画するために行のサイズを計算します。 yii\console\widgets\Table
getScreenWidth() 画面の幅を取得します。 yii\console\widgets\Table
renderRow() データ行を文字列にレンダリングします。 yii\console\widgets\Table
renderSeparator() 区切り文字をレンダリングします。 yii\console\widgets\Table

イベント

継承されたイベントを隠す

イベント 説明 定義元
EVENT_AFTER_RUN yii\base\WidgetEvent ウィジェットの実行直後に発生するイベント。(バージョン 2.0.11 以降で利用可能) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent ウィジェットの実行直前に発生するイベント。(バージョン 2.0.11 以降で利用可能) yii\base\Widget
EVENT_INIT yii\base\Event init() を介してウィジェットが初期化されたときにトリガーされるイベント。(バージョン 2.0.11 以降で利用可能) yii\base\Widget

定数

継承された定数を隠す

定数 説明 定義元
CHAR_BOTTOM 'bottom' yii\console\widgets\Table
CHAR_BOTTOM_LEFT 'bottom-left' yii\console\widgets\Table
CHAR_BOTTOM_MID 'bottom-mid' yii\console\widgets\Table
CHAR_BOTTOM_RIGHT 'bottom-right' yii\console\widgets\Table
CHAR_LEFT 'left' yii\console\widgets\Table
CHAR_LEFT_MID 'left-mid' yii\console\widgets\Table
CHAR_MID 'mid' yii\console\widgets\Table
CHAR_MIDDLE 'middle' yii\console\widgets\Table
CHAR_MID_MID 'mid-mid' yii\console\widgets\Table
CHAR_RIGHT 'right' yii\console\widgets\Table
CHAR_RIGHT_MID 'right-mid' yii\console\widgets\Table
CHAR_TOP 'top' yii\console\widgets\Table
CHAR_TOP_LEFT 'top-left' yii\console\widgets\Table
CHAR_TOP_MID 'top-mid' yii\console\widgets\Table
CHAR_TOP_RIGHT 'top-right' yii\console\widgets\Table
CONSOLE_SCROLLBAR_OFFSET 3 yii\console\widgets\Table
DEFAULT_CONSOLE_SCREEN_WIDTH 120 yii\console\widgets\Table

プロパティの詳細

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

$chars protected プロパティ (バージョン 2.0.19 以降で利用可能)

テーブルの文字

protected array $chars = [
    
self::CHAR_TOP => '═',
    
self::CHAR_TOP_MID => '╤',
    
self::CHAR_TOP_LEFT => '╔',
    
self::CHAR_TOP_RIGHT => '╗',
    
self::CHAR_BOTTOM => '═',
    
self::CHAR_BOTTOM_MID => '╧',
    
self::CHAR_BOTTOM_LEFT => '╚',
    
self::CHAR_BOTTOM_RIGHT => '╝',
    
self::CHAR_LEFT => '║',
    
self::CHAR_LEFT_MID => '╟',
    
self::CHAR_MID => '─',
    
self::CHAR_MID_MID => '┼',
    
self::CHAR_RIGHT => '║',
    
self::CHAR_RIGHT_MID => '╢',
    
self::CHAR_MIDDLE => '│',
]
$columnWidths protected プロパティ (バージョン 2.0.19 以降で利用可能)

テーブルの列幅

protected array $columnWidths = []
$headers protected プロパティ (バージョン 2.0.19 以降で利用可能)

テーブルのヘッダー

protected array $headers = []
$listPrefix protected プロパティ (バージョン 2.0.19 以降で利用可能)

リストのプレフィックス

protected string $listPrefix '• '
$rows protected プロパティ (バージョン 2.0.19 以降で利用可能)

テーブルの行

protected array $rows = []
$screenWidth protected プロパティ (バージョン 2.0.19 以降で利用可能)

画面幅

protected integer $screenWidth null

メソッドの詳細

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

__call() public メソッド

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

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

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

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

public void __clone ( )

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

            
__construct() public メソッド

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

コンストラクタ。

デフォルトの実装では、2つのことを行います。

  • 指定された構成 $config でオブジェクトを初期化します。
  • init() を呼び出します。

このメソッドが子クラスでオーバーライドされている場合は、以下をお勧めします。

  • コンストラクタの最後のパラメータは、ここでの $config のような構成配列です。
  • コンストラクタの最後に親の実装を呼び出します。
public void __construct ( $config = [] )
$config array

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

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public メソッド

定義元: 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);
}

            
afterRun() public メソッド (バージョン 2.0.11 以降で使用可能)

定義元: yii\base\Widget::afterRun()

このメソッドは、ウィジェットが実行された直後に呼び出されます。

このメソッドは EVENT_AFTER_RUN イベントをトリガーします。メソッドの戻り値は、ウィジェットの戻り値として使用されます。

このメソッドをオーバーライドする場合、コードは次のようになります。

public function afterRun($result)
{
    $result = parent::afterRun($result);
    // your custom code here
    return $result;
}
public mixed afterRun ( $result )
$result mixed

ウィジェットの戻り結果。

return mixed

処理されたウィジェットの結果。

                public function afterRun($result)
{
    $event = new WidgetEvent();
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_RUN, $event);
    return $event->result;
}

            
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() に渡してビヘイビアオブジェクトを作成するオブジェクト構成配列。
return 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);
    }
}

            
beforeRun() public メソッド (バージョン 2.0.11 以降で使用可能)

定義元: yii\base\Widget::beforeRun()

このメソッドは、ウィジェットが実行される直前に呼び出されます。

このメソッドは、EVENT_BEFORE_RUN イベントをトリガーします。メソッドの戻り値は、ウィジェットを実行し続けるかどうかを決定します。

このメソッドをオーバーライドするときは、次のように親の実装を呼び出すようにしてください。

public function beforeRun()
{
    if (!parent::beforeRun()) {
        return false;
    }

    // your custom code here

    return true; // or false to not run the widget
}
public boolean beforeRun ( )
return boolean

ウィジェットを実行し続けるかどうか。

                public function beforeRun()
{
    $event = new WidgetEvent();
    $this->trigger(self::EVENT_BEFORE_RUN, $event);
    return $event->isValid;
}

            
begin() public static メソッド

定義元: yii\base\Widget::begin()

ウィジェットを開始します。

このメソッドは、呼び出し元のクラスのインスタンスを作成します。作成されたインスタンスに構成が適用されます。一致する end() 呼び出しを後で行う必要があります。一部のウィジェットは出力バッファリングを使用する可能性があるため、出力バッファのネストが壊れないように、end() 呼び出しは同じビューで行う必要があります。

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

public static static begin ( $config = [] )
$config array

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

return yii\base\Widget

新しく作成されたウィジェットインスタンス

                public static function begin($config = [])
{
    $config['class'] = get_called_class();
    /* @var $widget Widget */
    $widget = Yii::createObject($config);
    self::$stack[] = $widget;
    return $widget;
}

            
behaviors() public メソッド

定義場所: 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 [];
}

            
calculateRowHeight() protected メソッド

行の高さを計算します。

参照: yii\console\widgets\Table::render()

protected integer calculateRowHeight ( $row )
$row array
return integer

セルあたりの最大行数

                protected function calculateRowHeight($row)
{
    $rowsPerCell = array_map(function ($size, $columnWidth) {
        if (is_array($columnWidth)) {
            $rows = 0;
            foreach ($columnWidth as $width) {
                $rows +=  $size == 2 ? 0 : ceil($width / ($size - 2));
            }
            return $rows;
        }
        return $size == 2 || $columnWidth == 0 ? 0 : ceil($columnWidth / ($size - 2));
    }, $this->columnWidths, array_map(function ($val) {
        if (is_array($val)) {
            return array_map('yii\helpers\Console::ansiStrwidth', $val);
        }
        if (is_string($val)) {
            return array_map('yii\helpers\Console::ansiStrwidth', explode(PHP_EOL, $val));
        }
        return Console::ansiStrwidth($val);
    }, $row));
    return max($rowsPerCell);
}

            
calculateRowsSize() protected メソッド

コンソールで列のアンカーを描画するために行のサイズを計算します。

参照: yii\console\widgets\Table::render()

protected void calculateRowsSize ( )

                protected function calculateRowsSize()
{
    $this->columnWidths = $columns = [];
    $totalWidth = 0;
    $screenWidth = $this->getScreenWidth() - self::CONSOLE_SCROLLBAR_OFFSET;
    $headerCount = count($this->headers);
    if (empty($this->rows)) {
        $rowColCount = 0;
    } else {
        $rowColCount = max(array_map('count', $this->rows));
    }
    $count = max($headerCount, $rowColCount);
    for ($i = 0; $i < $count; $i++) {
        $columns[] = ArrayHelper::getColumn($this->rows, $i);
        if ($i < $headerCount) {
            $columns[$i][] = $this->headers[$i];
        }
    }
    foreach ($columns as $column) {
        $columnWidth = max(array_map(function ($val) {
            if (is_array($val)) {
                return max(array_map('yii\helpers\Console::ansiStrwidth', $val)) + Console::ansiStrwidth($this->listPrefix);
            }
            if (is_string($val)) {
                return max(array_map('yii\helpers\Console::ansiStrwidth', explode(PHP_EOL, $val)));
            }
            return Console::ansiStrwidth($val);
        }, $column)) + 2;
        $this->columnWidths[] = $columnWidth;
        $totalWidth += $columnWidth;
    }
    if ($totalWidth > $screenWidth) {
        $minWidth = 3;
        $fixWidths = [];
        $relativeWidth = $screenWidth / $totalWidth;
        foreach ($this->columnWidths as $j => $width) {
            $scaledWidth = (int) ($width * $relativeWidth);
            if ($scaledWidth < $minWidth) {
                $fixWidths[$j] = 3;
            }
        }
        $totalFixWidth = array_sum($fixWidths);
        $relativeWidth = ($screenWidth - $totalFixWidth) / ($totalWidth - $totalFixWidth);
        foreach ($this->columnWidths as $j => $width) {
            if (!array_key_exists($j, $fixWidths)) {
                $this->columnWidths[$j] = (int) ($width * $relativeWidth);
            }
        }
    }
}

            
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

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

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

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

            
end() public static メソッド

定義場所: yii\base\Widget::end()

ウィジェットを終了します。

ウィジェットのレンダリング結果は、直接出力されることに注意してください。

参照: begin()

public static static end ( )
return yii\base\Widget

終了したウィジェットのインスタンス。

throws yii\base\InvalidCallException

begin()end() の呼び出しが正しくネストされていない場合

                public static function end()
{
    if (!empty(self::$stack)) {
        $widget = array_pop(self::$stack);
        $calledClass = get_called_class();
        if (Yii::$container->has($calledClass) && isset(Yii::$container->getDefinitions()[$calledClass]['class'])) {
            $calledClass = Yii::$container->getDefinitions()[$calledClass]['class'];
        }
        if (get_class($widget) === $calledClass) {
            /* @var $widget Widget */
            if ($widget->beforeRun()) {
                $result = $widget->run();
                $result = $widget->afterRun($result);
                echo $result;
            }
            return $widget;
        }
        throw new InvalidCallException('Expecting end() of ' . get_class($widget) . ', found ' . get_called_class());
    }
    throw new InvalidCallException('Unexpected ' . get_called_class() . '::end() call. A matching begin() is not found.');
}

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

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

            
getId() public メソッド

定義元: yii\base\Widget::getId()

ウィジェットのIDを返します。

public string|null getId ( $autoGenerate true )
$autoGenerate boolean

IDが以前に設定されていない場合に、IDを生成するかどうか

return string|null

ウィジェットのID。

                public function getId($autoGenerate = true)
{
    if ($autoGenerate && $this->_id === null) {
        $this->_id = static::$autoIdPrefix . static::$counter++;
    }
    return $this->_id;
}

            
getScreenWidth() protected メソッド

画面の幅を取得します。

画面幅を特定できない場合、デフォルト値の123が設定されます。

protected integer getScreenWidth ( )
return integer

画面幅

                protected function getScreenWidth()
{
    if (!$this->screenWidth) {
        $size = Console::getScreenSize();
        $this->screenWidth = isset($size[0])
            ? $size[0]
            : self::DEFAULT_CONSOLE_SCREEN_WIDTH + self::CONSOLE_SCROLLBAR_OFFSET;
    }
    return $this->screenWidth;
}

            
getView() public メソッド

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

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

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

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

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

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

            
getViewPath() public メソッド

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

このウィジェットのビューファイルを含むディレクトリを返します。

デフォルトの実装では、ウィジェットクラスファイルを含むディレクトリの下の「views」サブディレクトリを返します。

public string getViewPath ( )
return string

このウィジェットのビューファイルを含むディレクトリ。

                public function getViewPath()
{
    $class = new ReflectionClass($this);
    return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views';
}

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

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

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

このメソッドは、コンストラクターの最後に呼び出されます。デフォルトの実装では、EVENT_INITイベントがトリガーされます。

public void init ( )

                public function init()
{
    parent::init();
    $this->trigger(self::EVENT_INIT);
}

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

            
render() public メソッド

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

ビューをレンダリングします。

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

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

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

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

ビュー名。

$params array

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

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

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

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

            
renderFile() public メソッド

定義元: yii\base\Widget::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);
}

            
renderRow() protected メソッド

データ行を文字列にレンダリングします。

参照: yii\console\widgets\Table::render()

protected string renderRow ( array $row, $spanLeft, $spanMiddle, $spanRight )
$row array

データの行

$spanLeft string

左側の境界線の文字

$spanMiddle string

中央の境界線の文字

$spanRight string

右側の境界線の文字

                protected function renderRow(array $row, $spanLeft, $spanMiddle, $spanRight)
{
    $size = $this->columnWidths;
    $buffer = '';
    $arrayPointer = [];
    $renderedChunkTexts = [];
    for ($i = 0, ($max = $this->calculateRowHeight($row)) ?: $max = 1; $i < $max; $i++) {
        $buffer .= $spanLeft . ' ';
        foreach ($size as $index => $cellSize) {
            $cell = isset($row[$index]) ? $row[$index] : null;
            $prefix = '';
            if ($index !== 0) {
                $buffer .= $spanMiddle . ' ';
            }
            $arrayFromMultilineString = false;
            if (is_string($cell)) {
                $cellLines = explode(PHP_EOL, $cell);
                if (count($cellLines) > 1) {
                    $cell = $cellLines;
                    $arrayFromMultilineString = true;
                }
            }
            if (is_array($cell)) {
                if (empty($renderedChunkTexts[$index])) {
                    $renderedChunkTexts[$index] = '';
                    $start = 0;
                    $prefix = $arrayFromMultilineString ? '' : $this->listPrefix;
                    if (!isset($arrayPointer[$index])) {
                        $arrayPointer[$index] = 0;
                    }
                } else {
                    $start = mb_strwidth($renderedChunkTexts[$index], Yii::$app->charset);
                }
                $chunk = Console::ansiColorizedSubstr(
                    $cell[$arrayPointer[$index]],
                    $start,
                    $cellSize - 2 - Console::ansiStrwidth($prefix)
                );
                $renderedChunkTexts[$index] .= Console::stripAnsiFormat($chunk);
                $fullChunkText = Console::stripAnsiFormat($cell[$arrayPointer[$index]]);
                if (isset($cell[$arrayPointer[$index] + 1]) && $renderedChunkTexts[$index] === $fullChunkText) {
                    $arrayPointer[$index]++;
                    $renderedChunkTexts[$index] = '';
                }
            } else {
                $chunk = Console::ansiColorizedSubstr($cell, ($cellSize * $i) - ($i * 2), $cellSize - 2);
            }
            $chunk = $prefix . $chunk;
            $repeat = $cellSize - Console::ansiStrwidth($chunk) - 1;
            $buffer .= $chunk;
            if ($repeat >= 0) {
                $buffer .= str_repeat(' ', $repeat);
            }
        }
        $buffer .= "$spanRight\n";
    }
    return $buffer;
}

            
renderSeparator() protected メソッド

区切り文字をレンダリングします。

参照: yii\console\widgets\Table::render()

protected string renderSeparator ( $spanLeft, $spanMid, $spanMidMid, $spanRight )
$spanLeft string

左側の境界線の文字

$spanMid string

中央の境界線の文字

$spanMidMid string

中央-中央の境界線の文字

$spanRight string

右側の境界線の文字

return string

生成されたセパレーター行

                protected function renderSeparator($spanLeft, $spanMid, $spanMidMid, $spanRight)
{
    $separator = $spanLeft;
    foreach ($this->columnWidths as $index => $rowSize) {
        if ($index !== 0) {
            $separator .= $spanMid;
        }
        $separator .= str_repeat($spanMidMid, $rowSize);
    }
    $separator .= $spanRight . "\n";
    return $separator;
}

            
run() public メソッド

public string run ( )
return string

レンダリングされたテーブル

                public function run()
{
    $this->calculateRowsSize();
    $headerCount = count($this->headers);
    $buffer = $this->renderSeparator(
        $this->chars[self::CHAR_TOP_LEFT],
        $this->chars[self::CHAR_TOP_MID],
        $this->chars[self::CHAR_TOP],
        $this->chars[self::CHAR_TOP_RIGHT]
    );
    // Header
    if ($headerCount > 0) {
        $buffer .= $this->renderRow(
            $this->headers,
            $this->chars[self::CHAR_LEFT],
            $this->chars[self::CHAR_MIDDLE],
            $this->chars[self::CHAR_RIGHT]
        );
    }
    // Content
    foreach ($this->rows as $i => $row) {
        if ($i > 0 || $headerCount > 0) {
            $buffer .= $this->renderSeparator(
                $this->chars[self::CHAR_LEFT_MID],
                $this->chars[self::CHAR_MID_MID],
                $this->chars[self::CHAR_MID],
                $this->chars[self::CHAR_RIGHT_MID]
            );
        }
        $buffer .= $this->renderRow(
            $row,
            $this->chars[self::CHAR_LEFT],
            $this->chars[self::CHAR_MIDDLE],
            $this->chars[self::CHAR_RIGHT]
        );
    }
    $buffer .= $this->renderSeparator(
        $this->chars[self::CHAR_BOTTOM_LEFT],
        $this->chars[self::CHAR_BOTTOM_MID],
        $this->chars[self::CHAR_BOTTOM],
        $this->chars[self::CHAR_BOTTOM_RIGHT]
    );
    return $buffer;
}

            
setChars() public メソッド

テーブルの文字を設定します。

public $this setChars ( array $chars )
$chars array

テーブルの文字

                public function setChars(array $chars)
{
    $this->chars = $chars;
    return $this;
}

            
setHeaders() public メソッド

テーブルのヘッダーを設定します。

public $this setHeaders ( array $headers )
$headers array

テーブルのヘッダー

                public function setHeaders(array $headers)
{
    $this->headers = array_values($headers);
    return $this;
}

            
setId() public メソッド

定義元: yii\base\Widget::setId()

ウィジェットのIDを設定します。

public void setId ( $value )
$value string

ウィジェットのID。

                public function setId($value)
{
    $this->_id = $value;
}

            
setListPrefix() public メソッド

リストのプレフィックスを設定します。

public $this setListPrefix ( $listPrefix )
$listPrefix string

リストのプレフィックス

                public function setListPrefix($listPrefix)
{
    $this->listPrefix = $listPrefix;
    return $this;
}

            
setRows() public メソッド

テーブルの行を設定します。

public $this setRows ( array $rows )
$rows array

テーブルの行

                public function setRows(array $rows)
{
    $this->rows = array_map(function ($row) {
        return array_map(function ($value) {
            return empty($value) && !is_numeric($value)
                ? ' '
                :  (is_array($value)
                    ? array_values($value)
                    : $value);
        }, array_values($row));
    }, $rows);
    return $this;
}

            
setScreenWidth() public メソッド

画面幅を設定します。

public $this setScreenWidth ( $width )
$width integer

画面幅

                public function setScreenWidth($width)
{
    $this->screenWidth = $width;
    return $this;
}

            
setView() public メソッド

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

このウィジェットで使用するビューオブジェクトを設定します。

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

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

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

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

            
widget() public static メソッド

定義元: yii\base\Widget::widget()

ウィジェットのインスタンスを作成して実行します。

このメソッドによってウィジェットのレンダリング結果が返されます。

public static string widget ( $config = [] )
$config array

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

return string

ウィジェットのレンダリング結果。

throws Throwable

                public static function widget($config = [])
{
    ob_start();
    ob_implicit_flush(false);
    try {
        /* @var $widget Widget */
        $config['class'] = get_called_class();
        $widget = Yii::createObject($config);
        $out = '';
        if ($widget->beforeRun()) {
            $result = $widget->run();
            $out = $widget->afterRun($result);
        }
    } catch (\Exception $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    } catch (\Throwable $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    }
    return ob_get_clean() . $out;
}