0 フォロワー

クラス yii\widgets\Menu

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

Menu は、ネストされた HTML リストを使用してマルチレベルのメニューを表示します。

Menu の主なプロパティは $items であり、メニュー内の可能な項目を指定します。メニュー項目には、そのメニュー項目の下にあるサブメニューを指定するサブ項目を含めることができます。

Menu は、現在のルートとリクエストパラメータをチェックして、アクティブな状態の特定のメニュー項目を切り替えます。

Menu はメニューに関する HTML タグのみをレンダリングすることに注意してください。スタイル設定は行いません。実際のメニューのように見せるための CSS スタイルを提供する責任があります。

以下の例は、Menu の使用方法を示しています。

echo Menu::widget([
    'items' => [
        // Important: you need to specify url as 'controller/action',
        // not just as 'controller' even if default action is used.
        ['label' => 'Home', 'url' => ['site/index']],
        // 'Products' menu item will be selected as long as the route is 'product/index'
        ['label' => 'Products', 'url' => ['product/index'], 'items' => [
            ['label' => 'New Arrivals', 'url' => ['product/index', 'tag' => 'new']],
            ['label' => 'Most Popular', 'url' => ['product/index', 'tag' => 'popular']],
        ]],
        ['label' => 'Login', 'url' => ['site/login'], 'visible' => Yii::$app->user->isGuest],
    ],
]);

公開プロパティ

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

プロパティ 説明 定義元
$activateItems boolean ルート設定が現在リクエストされているルートと一致するかどうかに応じて、項目を自動的にアクティブ化するかどうか。 yii\widgets\Menu
$activateParents boolean 対応する子メニュー項目のいずれかがアクティブな場合に、親メニュー項目をアクティブにするかどうか。 yii\widgets\Menu
$activeCssClass string アクティブなメニュー項目に追加する CSS クラス。 yii\widgets\Menu
$autoIdPrefix string 自動生成されるウィジェット ID のプレフィックス。 yii\base\Widget
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$encodeLabels boolean メニュー項目のラベルを HTML エンコードする必要があるかどうか。 yii\widgets\Menu
$firstItemCssClass string|null メインメニューまたは各サブメニューの最初の項目に割り当てられる CSS クラス。 yii\widgets\Menu
$hideEmptyItems boolean 空のメニュー項目を非表示にするかどうか。 yii\widgets\Menu
$id string|null ウィジェットの ID。 yii\base\Widget
$itemOptions array すべてのメニュー $items で共有される HTML 属性のリスト。 yii\widgets\Menu
$items array メニュー項目のリスト。 yii\widgets\Menu
$labelTemplate string リンクではないメニューの本文のレンダリングに使用されるテンプレート。 yii\widgets\Menu
$lastItemCssClass string|null メインメニューまたは各サブメニューの最後の項目に割り当てられる CSS クラス。 yii\widgets\Menu
$linkTemplate string リンクであるメニューの本文のレンダリングに使用されるテンプレート。 yii\widgets\Menu
$options array メニューのコンテナタグの HTML 属性。 yii\widgets\Menu
$params array|null メニュー項目がアクティブかどうかを判断するために使用されるパラメータ。 yii\widgets\Menu
$route string|null メニュー項目がアクティブかどうかを判断するために使用されるルート。 yii\widgets\Menu
$submenuTemplate string サブメニューのリストのレンダリングに使用されるテンプレート。 yii\widgets\Menu
$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\widgets\Menu
setId() ウィジェットの ID を設定します。 yii\base\Widget
setView() このウィジェットで使用するビューオブジェクトを設定します。 yii\base\Widget
trigger() イベントをトリガーします。 yii\base\Component
widget() ウィジェットインスタンスを作成して実行します。 yii\base\Widget

保護されたメソッド

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

メソッド 説明 定義元
isItemActive() メニュー項目がアクティブかどうかを確認します。 yii\widgets\Menu
normalizeItems() 非表示の項目を削除し、特定の項目をアクティブにするように $items プロパティを正規化します。 yii\widgets\Menu
renderItem() メニュー項目のコンテンツをレンダリングします。 yii\widgets\Menu
renderItems() メニュー項目を(コンテナタグなしで)再帰的にレンダリングします。 yii\widgets\Menu

イベント

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

イベント 説明 定義元
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

プロパティ詳細

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

$activateItems public プロパティ

ルート設定が現在リクエストされているルートと一致するかどうかに応じて、項目を自動的にアクティブ化するかどうか。

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

public boolean $activateItems true
$activateParents public プロパティ

対応する子メニュー項目のいずれかがアクティブな場合に、親メニュー項目をアクティブにするかどうか。アクティブ化された親メニュー項目には、$activeCssClass が付加されたCSSクラスも付与されます。

public boolean $activateParents false
$activeCssClass public プロパティ

アクティブなメニュー項目に追加する CSS クラス。

public string $activeCssClass 'active'
$encodeLabels public プロパティ

メニュー項目のラベルを HTML エンコードする必要があるかどうか。

public boolean $encodeLabels true
$firstItemCssClass public プロパティ

メインメニューまたは各サブメニューの最初の項目に割り当てられるCSSクラス。デフォルトはnullで、そのようなCSSクラスは割り当てられないことを意味します。

$hideEmptyItems public プロパティ

空のメニュー項目を非表示にするかどうか。空のメニュー項目とは、urlオプションが設定されておらず、表示可能な子メニュー項目がない項目のことです。

public boolean $hideEmptyItems true
$itemOptions public プロパティ

すべてのメニュー$itemsで共有されるHTML属性のリスト。個々のメニュー項目でoptionsが指定されている場合は、メニュー項目のタグのHTML属性を生成するために使用される前に、このプロパティとマージされます。次の特別なオプションが認識されます。

  • tag: string, デフォルトは "li"、項目コンテナタグのタグ名。コンテナタグを無効にするにはfalseに設定します。yii\helpers\Html::tag()も参照してください。

属性のレンダリング方法の詳細については、yii\helpers\Html::renderTagAttributes()も参照してください。

public array $itemOptions = []
$items public プロパティ

メニュー項目のリスト。各メニュー項目は、次の構造の配列である必要があります。

  • label: string, オプション。メニュー項目のラベルを指定します。$encodeLabelsがtrueの場合、ラベルはHTMLエンコードされます。ラベルが指定されていない場合は、空の文字列が使用されます。
  • encode: boolean, オプション。この項目のラベルをHTMLエンコードするかどうか。このパラメーターは、グローバルの$encodeLabelsパラメーターをオーバーライドします。
  • url: stringまたはarray, オプション。メニュー項目のURLを指定します。yii\helpers\Url::to()で処理されます。これが設定されている場合、実際のメニュー項目のコンテンツは$linkTemplateを使用して生成されます。そうでない場合は、$labelTemplateが使用されます。
  • visible: boolean, オプション。このメニュー項目を表示するかどうか。デフォルトはtrueです。
  • items: array, オプション。サブメニュー項目を指定します。その形式は、親項目と同じです。
  • active: booleanまたはClosure, オプション。このメニュー項目がアクティブ状態(現在選択されている)かどうか。クロージャを使用する場合、そのシグネチャはfunction ($item, $hasActiveChild, $isItemActive, $widget)である必要があります。項目をactiveとしてマークする必要がある場合は、クロージャはtrueを返し、それ以外の場合はfalseを返す必要があります。メニュー項目がアクティブな場合、そのCSSクラスには$activeCssClassが付加されます。このオプションが設定されていない場合、現在のリクエストがurlによってトリガーされると、メニュー項目は自動的にアクティブに設定されます。詳細については、isItemActive()を参照してください。
  • template: string, オプション。このメニュー項目のコンテンツをレンダリングするために使用されるテンプレート。トークン{url}は、このメニュー項目に関連付けられたURLに置き換えられ、トークン{label}は、メニュー項目のラベルに置き換えられます。このオプションが設定されていない場合、代わりに$linkTemplateまたは$labelTemplateが使用されます。
  • submenuTemplate: string, オプション。サブメニューのリストをレンダリングするために使用されるテンプレート。トークン{items}は、レンダリングされたサブメニュー項目で置き換えられます。このオプションが設定されていない場合、代わりに$submenuTemplateが使用されます。
  • options: array, オプション。メニューコンテナタグのHTML属性。
public array $items = []
$labelTemplate public プロパティ

リンクではないメニューの本体をレンダリングするために使用されるテンプレートです。このテンプレートでは、トークン{label}がメニュー項目のラベルに置き換えられます。このプロパティは、$items を介して個々のメニュー項目に設定された template オプションによって上書きされます。

public string $labelTemplate '{label}'
$lastItemCssClass public プロパティ

メインメニューまたは各サブメニューの最後の項目に割り当てられるCSSクラスです。デフォルトは null で、そのようなCSSクラスが割り当てられないことを意味します。

$linkTemplate public プロパティ

リンクであるメニューの本体をレンダリングするために使用されるテンプレートです。このテンプレートでは、トークン{url}が対応するリンクURLに置き換えられ、{label}がリンクテキストに置き換えられます。このプロパティは、$items を介して個々のメニュー項目に設定された template オプションによって上書きされます。

public string $linkTemplate '<a href="{url}">{label}</a>'
$options public プロパティ

メニューのコンテナタグのHTML属性です。次の特別なオプションが認識されます。

  • tag: string、デフォルトは "ul" で、項目コンテナタグのタグ名です。コンテナタグを無効にするには、false に設定します。yii\helpers\Html::tag() も参照してください。

属性のレンダリング方法の詳細については、yii\helpers\Html::renderTagAttributes()も参照してください。

public array $options []
$params public プロパティ

メニュー項目がアクティブかどうかを判断するために使用されるパラメーターです。設定されていない場合、$_GET が使用されます。

参照

public array|null $params null
$route public プロパティ

メニュー項目がアクティブかどうかを判断するために使用されるルートです。設定されていない場合、現在のリクエストのルートが使用されます。

参照

public string|null $route null
$submenuTemplate public プロパティ

サブメニューのリストをレンダリングするために使用されるテンプレートです。このテンプレートでは、トークン{items}がレンダリングされたサブメニュー項目に置き換えられます。

public string $submenuTemplate "\n<ul>\n{items}\n</ul>\n"

メソッドの詳細

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

__call() public メソッド

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

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

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

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

  • getterによって定義されたプロパティ: getterの結果を返します。
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を返します。

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

参考: __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 でない)かどうかを確認します。

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

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

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

参考: 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()

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

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

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

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

参考: __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 に設定します。

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

  • setterによって定義されたプロパティ: プロパティ値をnullに設定します。
  • ビヘイビアのプロパティ: プロパティ値をnullに設定します。

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

参考: 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);
}

            
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

ウィジェットの戻り値。

戻り値 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()に渡されるオブジェクト構成配列。
戻り値 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 ( )
戻り値 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

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

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

ビヘイビア設定。

                public function behaviors()
{
    return [];
}

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

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

            
end() public static メソッド

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

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

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

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

public static static end ( )
戻り値 yii\base\Widget

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

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

ビヘイビアの名前

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

            
getId() public メソッド

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

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

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

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

戻り値 string|null

ウィジェットの ID。

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

            
getView() public メソッド

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

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

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

public yii\web\View getView ( )
戻り値 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 ( )
戻り値 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

イベント名

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

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

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

  • クラスが指定された名前に関連付けられたゲッターまたはセッターメソッドを持っている (この場合、プロパティ名はcase-insensitiveです);
  • クラスに指定された名前のメンバ変数がある場合 ($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 メソッド

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

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

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

public void init ( )

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

            
isItemActive() protected メソッド

メニュー項目がアクティブかどうかを確認します。

これは、$route$params がメニュー項目の url オプションで指定されたものと一致するかどうかを確認することによって行われます。メニュー項目の url オプションが配列で指定されている場合、その最初の要素は項目のルートとして扱われ、残りの要素は関連付けられたパラメーターになります。$route$params にそれぞれ一致するルートとパラメーターがある場合にのみ、メニュー項目がアクティブと見なされます。

protected boolean isItemActive ( $item )
$item array

チェックするメニュー項目

戻り値 boolean

メニュー項目がアクティブかどうか

                protected function isItemActive($item)
{
    if (isset($item['url']) && is_array($item['url']) && isset($item['url'][0])) {
        $route = Yii::getAlias($item['url'][0]);
        if (strncmp($route, '/', 1) !== 0 && Yii::$app->controller) {
            $route = Yii::$app->controller->module->getUniqueId() . '/' . $route;
        }
        if (ltrim($route, '/') !== $this->route) {
            return false;
        }
        unset($item['url']['#']);
        if (count($item['url']) > 1) {
            $params = $item['url'];
            unset($params[0]);
            foreach ($params as $name => $value) {
                if ($value !== null && (!isset($this->params[$name]) || $this->params[$name] != $value)) {
                    return false;
                }
            }
        }
        return true;
    }
    return false;
}

            
normalizeItems() protected メソッド

非表示の項目を削除し、特定の項目をアクティブにするように $items プロパティを正規化します。

protected array normalizeItems ( $items, &$active )
$items array

正規化する項目。

$active boolean

アクティブな子メニュー項目があるかどうか。

戻り値 array

正規化されたメニュー項目

                protected function normalizeItems($items, &$active)
{
    foreach ($items as $i => $item) {
        if (isset($item['visible']) && !$item['visible']) {
            unset($items[$i]);
            continue;
        }
        if (!isset($item['label'])) {
            $item['label'] = '';
        }
        $encodeLabel = isset($item['encode']) ? $item['encode'] : $this->encodeLabels;
        $items[$i]['label'] = $encodeLabel ? Html::encode($item['label']) : $item['label'];
        $hasActiveChild = false;
        if (isset($item['items'])) {
            $items[$i]['items'] = $this->normalizeItems($item['items'], $hasActiveChild);
            if (empty($items[$i]['items']) && $this->hideEmptyItems) {
                unset($items[$i]['items']);
                if (!isset($item['url'])) {
                    unset($items[$i]);
                    continue;
                }
            }
        }
        if (!isset($item['active'])) {
            if ($this->activateParents && $hasActiveChild || $this->activateItems && $this->isItemActive($item)) {
                $active = $items[$i]['active'] = true;
            } else {
                $items[$i]['active'] = false;
            }
        } elseif ($item['active'] instanceof Closure) {
            if (call_user_func($item['active'], $item, $hasActiveChild, $this->isItemActive($item), $this)) {
                $active = $items[$i]['active'] = true;
            } else {
                $items[$i]['active'] = false;
            }
        } elseif ($item['active']) {
            $active = true;
        }
    }
    return array_values($items);
}

            
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)

ここで、$eventyii\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

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

戻り値 string

レンダリング結果。

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

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

戻り値 string

レンダリング結果。

例外 yii\base\InvalidArgumentException

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

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

            
renderItem() protected メソッド

メニュー項目のコンテンツをレンダリングします。

コンテナとサブメニューはここではレンダリングされないことに注意してください。

protected string renderItem ( $item )
$item array

レンダリングするメニュー項目。項目にどのようなデータが含まれるかについては、$itemsを参照してください。

戻り値 string

レンダリング結果

                protected function renderItem($item)
{
    if (isset($item['url'])) {
        $template = ArrayHelper::getValue($item, 'template', $this->linkTemplate);
        return strtr($template, [
            '{url}' => Html::encode(Url::to($item['url'])),
            '{label}' => $item['label'],
        ]);
    }
    $template = ArrayHelper::getValue($item, 'template', $this->labelTemplate);
    return strtr($template, [
        '{label}' => $item['label'],
    ]);
}

            
renderItems() protected メソッド

メニュー項目を(コンテナタグなしで)再帰的にレンダリングします。

protected string renderItems ( $items )
$items array

再帰的にレンダリングされるメニュー項目

戻り値 string

レンダリング結果

                protected function renderItems($items)
{
    $n = count($items);
    $lines = [];
    foreach ($items as $i => $item) {
        $options = array_merge($this->itemOptions, ArrayHelper::getValue($item, 'options', []));
        $tag = ArrayHelper::remove($options, 'tag', 'li');
        $class = [];
        if ($item['active']) {
            $class[] = $this->activeCssClass;
        }
        if ($i === 0 && $this->firstItemCssClass !== null) {
            $class[] = $this->firstItemCssClass;
        }
        if ($i === $n - 1 && $this->lastItemCssClass !== null) {
            $class[] = $this->lastItemCssClass;
        }
        Html::addCssClass($options, $class);
        $menu = $this->renderItem($item);
        if (!empty($item['items'])) {
            $submenuTemplate = ArrayHelper::getValue($item, 'submenuTemplate', $this->submenuTemplate);
            $menu .= strtr($submenuTemplate, [
                '{items}' => $this->renderItems($item['items']),
            ]);
        }
        $lines[] = Html::tag($tag, $menu, $options);
    }
    return implode("\n", $lines);
}

            
run() public メソッド

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

public void run ( )

                public function run()
{
    if ($this->route === null && Yii::$app->controller !== null) {
        $this->route = Yii::$app->controller->getRoute();
    }
    if ($this->params === null) {
        $this->params = Yii::$app->request->getQueryParams();
    }
    $items = $this->normalizeItems($this->items, $hasActiveChild);
    if (!empty($items)) {
        $options = $this->options;
        $tag = ArrayHelper::remove($options, 'tag', 'ul');
        echo Html::tag($tag, $this->renderItems($items), $options);
    }
}

            
setId() public メソッド

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

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

public void setId ( $value )
$value string

ウィジェットのID。

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

            
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

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

戻り値 string

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

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