3 フォロワー

クラス yii\web\View

継承yii\web\View » yii\base\View » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurableyii\base\DynamicContentAwareInterface
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/web/View.php

Viewは、MVCパターンにおけるビューオブジェクトを表します。

Viewは、レンダリング目的のために、いくつかのメソッド(例:render())を提供します。

Viewは、デフォルトでyii\base\Applicationでアプリケーションコンポーネントとして構成されています。`Yii::$app->view`を通してそのインスタンスにアクセスできます。

以下の例のように、アプリケーション設定の`components`下に配列を追加することで、その設定を変更できます。

'view' => [
    'theme' => 'app\themes\MyTheme',
    'renderers' => [
        // you may add Smarty or Twig renderer here
    ]
    // ...
]

Viewに関する詳細と使用方法については、ビューに関するガイド記事を参照してください。

公開プロパティ

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

プロパティ 説明 定義元
$assetBundles yii\web\AssetBundle[] 登録されたアセットバンドルのリスト。 yii\web\View
$assetManager yii\web\AssetManager アセットマネージャー。 yii\web\View
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$blocks array 名前付き出力ブロックのリスト。 yii\base\View
$context yii\base\ViewContextInterface renderFile()メソッドが呼び出されているコンテキスト。 yii\base\View
$css array 登録されたCSSコードブロック。 yii\web\View
$cssFiles array 登録されたCSSファイル。 yii\web\View
$defaultExtension string デフォルトのビューファイル拡張子。 yii\base\View
$dynamicContents yii\base\DynamicContentAwareInterface[] 動的コンテンツをサポートするクラスインスタンス。 yii\base\View
$dynamicPlaceholders array プレースホルダーのリスト。 yii\base\View
$isPageEnded boolean yii\web\View
$js array 登録されたJSコードブロック。 yii\web\View
$jsFiles array 登録されたJSファイル。 yii\web\View
$linkTags array 登録されたリンクタグ。 yii\web\View
$metaTags array 登録されたメタタグ。 yii\web\View
$params array ビューテンプレート間で共有されるカスタムパラメータ。 yii\base\View
$renderers array|null 対応するサポートされているファイル拡張子でインデックス付けされた、利用可能なレンダラーのリスト。 yii\base\View
$theme yii\base\Theme|array|string|null テーマオブジェクト、またはテーマオブジェクトを作成するための設定。 yii\base\View
$title string ページタイトル。 yii\web\View
$viewFile string|boolean 現在レンダリングされているビューファイル。 yii\base\View

保護されたプロパティ

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

プロパティ 説明 定義元

公開メソッド

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

メソッド 説明 定義元
__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
addDynamicPlaceholder() 動的コンテンツのプレースホルダーを追加します。 yii\base\View
afterRender() renderFile()がビューファイルをレンダリングした直後に、このメソッドが呼び出されます。 yii\base\View
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeRender() renderFile()がビューファイルをレンダリングする直前に、このメソッドが呼び出されます。 yii\base\View
beginBlock() ブロックの記録を開始します。 yii\base\View
beginBody() HTML本文セクションの先頭を示します。 yii\web\View
beginCache() フラグメントキャッシングを開始します。 yii\base\View
beginContent() 指定されたビューで装飾されるコンテンツのレンダリングを開始します。 yii\base\View
beginPage() ページの先頭をマークします。 yii\base\View
behaviors() このコンポーネントが振る舞うべきビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
clear() 登録されたメタタグ、リンクタグ、CSS/JSスクリプト、およびファイルをクリアします。 yii\web\View
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
endBlock() ブロックの記録を終了します。 yii\base\View
endBody() HTML本文セクションの終了をマークします。 yii\web\View
endCache() フラグメントキャッシングを終了します。 yii\base\View
endContent() コンテンツのレンダリングを終了します。 yii\base\View
endPage() HTMLページの終了をマークします。 yii\web\View
ensureBehaviors() behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
evaluateDynamicContent() 指定されたPHP文を実行します。 yii\base\View
getAssetManager() このビューオブジェクトで使用されているアセットマネージャーを登録します。 yii\web\View
getBehavior() 名前付きのビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getDynamicContents() 現在アクティブな動的コンテンツクラスインスタンスのリストを返します。 yii\base\View
getDynamicPlaceholders() 動的コンテンツのプレースホルダーのリストを返します。このメソッドは、コンテンツキャッシング機能の実装に内部的に使用されます。 yii\base\View
getViewFile() yii\base\View
hasEventHandlers() 名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
head() HTMLヘッダーセクションの位置をマークします。 yii\web\View
init() ビューコンポーネントを初期化します。 yii\base\View
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
popDynamicContent() 動的コンテンツをサポートする最後のクラスインスタンスを、現在アクティブな動的コンテンツクラスインスタンスのリストから削除します。 yii\base\View
pushDynamicContent() 動的コンテンツをサポートするクラスインスタンスを、現在アクティブな動的コンテンツクラスインスタンスのリストの最後に追加します。 yii\base\View
registerAssetBundle() 名前付きのアセットバンドルを登録します。 yii\web\View
registerCsrfMetaTags() CSRFメタタグを登録します。 yii\web\View
registerCss() CSSコードブロックを登録します。 yii\web\View
registerCssFile() CSSファイルを登録します。 yii\web\View
registerJs() JSコードブロックを登録します。 yii\web\View
registerJsFile() JSファイルを登録します。 yii\web\View
registerJsVar() 変数を定義するJSコードブロックを登録します。変数の名前はキーとして使用され、重複した変数名を防ぎます。 yii\web\View
registerLinkTag() リンクタグを登録します。 yii\web\View
registerMetaTag() メタタグを登録します。 yii\web\View
render() ビューをレンダリングします。 yii\base\View
renderAjax() AJAXリクエストに応答してビューをレンダリングします。 yii\web\View
renderDynamic() 指定されたPHP文によって返された動的コンテンツをレンダリングします。 yii\base\View
renderFile() ビューファイルをレンダリングします。 yii\base\View
renderPhpFile() ビューファイルをPHPスクリプトとしてレンダリングします。 yii\base\View
setAssetManager() アセットマネージャーを設定します。 yii\web\View
setDynamicPlaceholders() 動的コンテンツのプレースホルダーのリストを設定します。このメソッドは、コンテンツキャッシング機能の実装に内部的に使用されます。 yii\base\View
trigger() イベントをトリガーします。 yii\base\Component

プロテクトメソッド

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

メソッド 説明 定義元
findViewFile() 指定されたビュー名に基づいてビューファイルを検索します。 yii\base\View
getRequestedViewFile() yii\base\View
registerAssetFiles() 依存バンドルのファイルを含む、アセットバンドルによって提供されるすべてのファイルを登録します。 yii\web\View
renderBodyBeginHtml() 本文セクションの先頭に挿入されるコンテンツをレンダリングします。 yii\web\View
renderBodyEndHtml() 本文セクションの最後に挿入されるコンテンツをレンダリングします。 yii\web\View
renderHeadHtml() ヘッダーセクションに挿入されるコンテンツをレンダリングします。 yii\web\View

イベント

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

イベント 説明 定義元
EVENT_AFTER_RENDER yii\base\ViewEvent renderFile()がビューファイルをレンダリングした直後にトリガーされるイベントです。 yii\base\View
EVENT_BEFORE_RENDER yii\base\ViewEvent renderFile()がビューファイルをレンダリングする直前にトリガーされるイベントです。 yii\base\View
EVENT_BEGIN_BODY yii\web\Event beginBody()によってトリガーされるイベントです。 yii\web\View
EVENT_BEGIN_PAGE yii\base\Event beginPage()によってトリガーされるイベントです。 yii\base\View
EVENT_END_BODY yii\web\Event endBody()によってトリガーされるイベントです。 yii\web\View
EVENT_END_PAGE yii\base\Event endPage()によってトリガーされるイベントです。 yii\base\View

定数

継承された定数を非表示

定数 説明 定義元
PH_BODY_BEGIN '' 本文セクションの先頭に登録されたコンテンツを受け取るためのプレースホルダーとして内部的に使用されます。 yii\web\View
PH_BODY_END ' ' 本文セクションの最後に登録されたコンテンツを受け取るためのプレースホルダーとして内部的に使用されます。 yii\web\View
PH_HEAD ' ' ヘッダーセクションに登録されたコンテンツを受け取るためのプレースホルダーとして内部的に使用されます。 yii\web\View
POS_BEGIN 2 登録されたJavaScriptコードブロックまたはファイルの位置。これは、本文セクションの先頭にあることを意味します。 yii\web\View
POS_END 3 登録されたJavaScriptコードブロックまたはファイルの位置。これは、本文セクションの最後にあることを意味します。 yii\web\View
POS_HEAD 1 登録されたJavaScriptコードブロックまたはファイルの位置。これは、ヘッダーセクション内にあることを意味します。 yii\web\View
POS_LOAD 5 登録されたJavaScriptコードブロックの位置。これは、JavaScriptコードブロックが`jQuery(window).load()`で囲まれることを意味します。 yii\web\View
POS_READY 4 登録されたJavaScriptコードブロックの位置。これは、JavaScriptコードブロックが`jQuery(document).ready()`で囲まれることを意味します。 yii\web\View

プロパティの詳細

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

$assetBundles public property

登録されたアセットバンドルのリスト。キーはバンドル名、値は登録されたyii\web\AssetBundleオブジェクトです。

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

$assetManager public property

アセットマネージャー。"assetManager"アプリケーションコンポーネントがデフォルトです。

$css public property

登録されたCSSコードブロック。

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

public array $css = []
$cssFiles public property

登録されたCSSファイル。

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

public array $cssFiles = []
$isPageEnded protected property (available since version 2.0.44)
protected boolean $isPageEnded false
$js public プロパティ

登録されたJSコードブロック。

参考: registerJs().

public array $js = []
$jsFiles public プロパティ

登録されたJSファイル。

参考: registerJsFile().

public array $jsFiles = []
$linkTags public プロパティ

登録されたリンクタグ。

参考: registerLinkTag().

public array $linkTags = []
$metaTags public プロパティ

登録されたメタタグ。

参考: registerMetaTag().

public array $metaTags = []
$title public プロパティ

ページタイトル。

public string $title null

メソッドの詳細

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

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

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

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

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

これは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);
}

            
addDynamicPlaceholder() publicメソッド

定義位置: yii\base\View::addDynamicPlaceholder()

動的コンテンツのプレースホルダーを追加します。

このメソッドは、コンテンツキャッシュ機能の実装において内部的に使用されます。

public void addDynamicPlaceholder ( $placeholder, $statements )
$placeholder
$statements string

動的コンテンツを生成するためのPHP文。

                public function addDynamicPlaceholder($placeholder, $statements)
{
    foreach ($this->cacheStack as $cache) {
        if ($cache instanceof DynamicContentAwareInterface) {
            $cache->addDynamicPlaceholder($placeholder, $statements);
        } else {
            // TODO: Remove in 2.1
            $cache->dynamicPlaceholders[$placeholder] = $statements;
        }
    }
    $this->dynamicPlaceholders[$placeholder] = $statements;
}

            
afterRender() publicメソッド

定義位置: yii\base\View::afterRender()

renderFile()がビューファイルをレンダリングした直後に、このメソッドが呼び出されます。

デフォルトの実装では、EVENT_AFTER_RENDER イベントをトリガーします。このメソッドをオーバーライドする場合は、必ず親クラスの実装を最初に呼び出してください。

public void afterRender ( $viewFile, $params, &$output )
$viewFile string

レンダリングされるビューファイル。

$params array

render() メソッドに渡されるパラメータ配列。

$output string

ビューファイルのレンダリング結果。このパラメータへの更新は、renderFile() によって返されます。

                public function afterRender($viewFile, $params, &$output)
{
    if ($this->hasEventHandlers(self::EVENT_AFTER_RENDER)) {
        $event = new ViewEvent([
            'viewFile' => $viewFile,
            'params' => $params,
        ]);
        $event->output =& $output;
        $this->trigger(self::EVENT_AFTER_RENDER, $event);
    }
}

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

            
beforeRender() publicメソッド

定義位置: yii\base\View::beforeRender()

renderFile()がビューファイルをレンダリングする直前に、このメソッドが呼び出されます。

デフォルトの実装では、EVENT_BEFORE_RENDER イベントをトリガーします。このメソッドをオーバーライドする場合は、必ず親クラスの実装を最初に呼び出してください。

public boolean beforeRender ( $viewFile, $params )
$viewFile string

レンダリングされるビューファイル。

$params array

render() メソッドに渡されるパラメータ配列。

戻り値 boolean

ビューファイルのレンダリングを続行するかどうか。

                public function beforeRender($viewFile, $params)
{
    $event = new ViewEvent([
        'viewFile' => $viewFile,
        'params' => $params,
    ]);
    $this->trigger(self::EVENT_BEFORE_RENDER, $event);
    return $event->isValid;
}

            
beginBlock() publicメソッド

定義位置: yii\base\View::beginBlock()

ブロックの記録を開始します。

このメソッドは、yii\widgets\Block を開始するためのショートカットです。

public yii\widgets\Block beginBlock ( $id, $renderInPlace false )
$id string

ブロックID。

$renderInPlace boolean

ブロックの内容をその場でレンダリングするかどうか。デフォルトはfalseで、キャプチャされたブロックは表示されません。

戻り値 yii\widgets\Block

Blockウィジェットインスタンス

                public function beginBlock($id, $renderInPlace = false)
{
    return Block::begin([
        'id' => $id,
        'renderInPlace' => $renderInPlace,
        'view' => $this,
    ]);
}

            
beginBody() publicメソッド

HTML本文セクションの先頭を示します。

public void beginBody ( )

                public function beginBody()
{
    echo self::PH_BODY_BEGIN;
    $this->trigger(self::EVENT_BEGIN_BODY);
}

            
beginCache() publicメソッド

定義位置: yii\base\View::beginCache()

フラグメントキャッシングを開始します。

このメソッドは、利用可能な場合はキャッシュされたコンテンツを表示します。利用できない場合は、キャッシングを開始し、endCache() の呼び出しでキャッシュを終了し、コンテンツをキャッシュに保存することを期待します。フラグメントキャッシングの典型的な使い方は次のとおりです。

if ($this->beginCache($id)) {
    // ...generate content here
    $this->endCache();
}
public boolean beginCache ( $id, $properties = [] )
$id string

キャッシュするフラグメントを一意に識別するID。

$properties array

yii\widgets\FragmentCache の初期プロパティ値。

戻り値 boolean

キャッシングのためにコンテンツを生成する必要があるかどうか。キャッシュされたバージョンが利用可能な場合はfalse。

                public function beginCache($id, $properties = [])
{
    $properties['id'] = $id;
    $properties['view'] = $this;
    /* @var $cache FragmentCache */
    $cache = FragmentCache::begin($properties);
    if ($cache->getCachedContent() !== false) {
        $this->endCache();
        return false;
    }
    return true;
}

            
beginContent() publicメソッド

定義されている場所: yii\base\View::beginContent()

指定されたビューで装飾されるコンテンツのレンダリングを開始します。

このメソッドは、入れ子になったレイアウトを実装するために使用できます。例えば、'@app/views/layouts/base.php'のように指定された別のレイアウトファイルにレイアウトを埋め込むことができます。

<?php $this->beginContent('@app/views/layouts/base.php'); ?>
//...layout content here...
<?php $this->endContent(); ?>

こちらも参照してください yii\widgets\ContentDecorator.

public yii\widgets\ContentDecorator beginContent ( $viewFile, $params = [] )
$viewFile string

このウィジェットによって囲まれたコンテンツを装飾するために使用されるビューファイルです。ビューファイルのパス、またはパスエイリアスとして指定できます。

$params array

装飾ビューで展開され、利用可能になる変数(名前 => 値)。

戻り値 yii\widgets\ContentDecorator

ContentDecorator ウィジェットインスタンス

                public function beginContent($viewFile, $params = [])
{
    return ContentDecorator::begin([
        'viewFile' => $viewFile,
        'params' => $params,
        'view' => $this,
    ]);
}

            
beginPage() public メソッド

定義されている場所: yii\base\View::beginPage()

ページの先頭をマークします。

public void beginPage ( )

                public function beginPage()
{
    ob_start();
    ob_implicit_flush(false);
    $this->trigger(self::EVENT_BEGIN_PAGE);
}

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

            
clear() public メソッド

登録されたメタタグ、リンクタグ、CSS/JSスクリプト、およびファイルをクリアします。

public void clear ( )

                public function clear()
{
    $this->metaTags = [];
    $this->linkTags = [];
    $this->css = [];
    $this->cssFiles = [];
    $this->js = [];
    $this->jsFiles = [];
    $this->assetBundles = [];
}

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

            
endBlock() public メソッド

定義されている場所: yii\base\View::endBlock()

ブロックの記録を終了します。

public void endBlock ( )

                public function endBlock()
{
    Block::end();
}

            
endBody() public メソッド

HTML本文セクションの終了をマークします。

public void endBody ( )

                public function endBody()
{
    $this->trigger(self::EVENT_END_BODY);
    echo self::PH_BODY_END;
    foreach (array_keys($this->assetBundles) as $bundle) {
        $this->registerAssetFiles($bundle);
    }
}

            
endCache() public メソッド

定義されている場所: yii\base\View::endCache()

フラグメントキャッシングを終了します。

public void endCache ( )

                public function endCache()
{
    FragmentCache::end();
}

            
endContent() public メソッド

定義されている場所: yii\base\View::endContent()

コンテンツのレンダリングを終了します。

public void endContent ( )

                public function endContent()
{
    ContentDecorator::end();
}

            
endPage() publicメソッド

HTMLページの終了をマークします。

public void endPage ( $ajaxMode false )
$ajaxMode boolean

ビューがAJAXモードでレンダリングされているかどうか。trueの場合、POS_READYPOS_LOADの位置に登録されたJSスクリプトは、通常のスクリプトのようにビューの最後にレンダリングされます。

                public function endPage($ajaxMode = false)
{
    $this->trigger(self::EVENT_END_PAGE);
    $this->isPageEnded = true;
    $content = ob_get_clean();
    echo strtr($content, [
        self::PH_HEAD => $this->renderHeadHtml(),
        self::PH_BODY_BEGIN => $this->renderBodyBeginHtml(),
        self::PH_BODY_END => $this->renderBodyEndHtml($ajaxMode),
    ]);
    $this->clear();
}

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

            
evaluateDynamicContent() publicメソッド

定義されている場所: yii\base\View::evaluateDynamicContent()

指定されたPHP文を実行します。

このメソッドは主に、動的コンテンツ機能を実装するために内部的に使用されます。

public mixed evaluateDynamicContent ( $statements )
$statements string

評価されるPHP文。

戻り値 mixed

PHP文の戻り値。

                public function evaluateDynamicContent($statements)
{
    return eval($statements);
}

            
findViewFile() protectedメソッド

定義されている場所: yii\base\View::findViewFile()

指定されたビュー名に基づいてビューファイルを検索します。

protected string findViewFile ( $view, $context null )
$view string

ビュー名、またはビューファイルのパスエイリアス。このパラメーターの指定方法については、render()を参照してください。

$context object|null

ビューに割り当てられ、後でビュー内で$contextを介してアクセスできるコンテキスト。コンテキストがyii\base\ViewContextInterfaceを実装している場合、相対ビュー名に対応するビューファイルを見つけるためにも使用できます。

戻り値 string

ビューファイルのパス。ファイルが存在しない場合もあります。

例外 yii\base\InvalidCallException

相対ビュー名が指定され、対応するビューファイルを確認するためのアクティブなコンテキストがない場合。

                protected function findViewFile($view, $context = null)
{
    if (strncmp($view, '@', 1) === 0) {
        // e.g. "@app/views/main"
        $file = Yii::getAlias($view);
    } elseif (strncmp($view, '//', 2) === 0) {
        // e.g. "//layouts/main"
        $file = Yii::$app->getViewPath() . DIRECTORY_SEPARATOR . ltrim($view, '/');
    } elseif (strncmp($view, '/', 1) === 0) {
        // e.g. "/site/index"
        if (Yii::$app->controller !== null) {
            $file = Yii::$app->controller->module->getViewPath() . DIRECTORY_SEPARATOR . ltrim($view, '/');
        } else {
            throw new InvalidCallException("Unable to locate view file for view '$view': no active controller.");
        }
    } elseif ($context instanceof ViewContextInterface) {
        $file = $context->getViewPath() . DIRECTORY_SEPARATOR . $view;
    } elseif (($currentViewFile = $this->getRequestedViewFile()) !== false) {
        $file = dirname($currentViewFile) . DIRECTORY_SEPARATOR . $view;
    } else {
        throw new InvalidCallException("Unable to resolve view file for view '$view': no active view context.");
    }
    if (pathinfo($file, PATHINFO_EXTENSION) !== '') {
        return $file;
    }
    $path = $file . '.' . $this->defaultExtension;
    if ($this->defaultExtension !== 'php' && !is_file($path)) {
        $path = $file . '.php';
    }
    return $path;
}

            
getAssetManager() publicメソッド

このビューオブジェクトで使用されているアセットマネージャーを登録します。

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

アセットマネージャー。"assetManager"アプリケーションコンポーネントがデフォルトです。

                public function getAssetManager()
{
    return $this->_assetManager ?: Yii::$app->getAssetManager();
}

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

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

定義されている場所: yii\base\View::getDynamicContents()

現在アクティブな動的コンテンツクラスインスタンスのリストを返します。

public yii\base\DynamicContentAwareInterface[] getDynamicContents ( )
戻り値 yii\base\DynamicContentAwareInterface[]

動的コンテンツをサポートするクラスインスタンス。

                public function getDynamicContents()
{
    return $this->cacheStack;
}

            
getDynamicPlaceholders() publicメソッド

定義されている場所: yii\base\View::getDynamicPlaceholders()

動的コンテンツのプレースホルダーのリストを返します。このメソッドは、コンテンツキャッシング機能の実装に内部的に使用されます。

public array getDynamicPlaceholders ( )
戻り値 array

プレースホルダーのリスト。

                public function getDynamicPlaceholders()
{
    return $this->dynamicPlaceholders;
}

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

定義されている場所: yii\base\View::getRequestedViewFile()

protected string|boolean getRequestedViewFile ( )
戻り値 string|boolean

現在レンダリングされている要求されたビュー。ビューファイルがレンダリングされていない場合はfalse。

                protected function getRequestedViewFile()
{
    return empty($this->_viewFiles) ? false : end($this->_viewFiles)['requested'];
}

            
getViewFile() publicメソッド

定義されている場所: yii\base\View::getViewFile()

public string|boolean getViewFile ( )
戻り値 string|boolean

現在レンダリングされているビューファイル。ビューファイルがレンダリングされていない場合はfalse。

                public function getViewFile()
{
    return empty($this->_viewFiles) ? false : end($this->_viewFiles)['resolved'];
}

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

            
head() publicメソッド

HTMLヘッダーセクションの位置をマークします。

public void head ( )

                public function head()
{
    echo self::PH_HEAD;
}

            
init() publicメソッド

定義場所: yii\base\View::init()

ビューコンポーネントを初期化します。

public void init ( )

                public function init()
{
    parent::init();
    if (is_array($this->theme)) {
        if (!isset($this->theme['class'])) {
            $this->theme['class'] = 'yii\base\Theme';
        }
        $this->theme = Yii::createObject($this->theme);
    } elseif (is_string($this->theme)) {
        $this->theme = Yii::createObject($this->theme);
    }
}

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

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

定義場所: yii\base\View::popDynamicContent()

動的コンテンツをサポートする最後のクラスインスタンスを、現在アクティブな動的コンテンツクラスインスタンスのリストから削除します。

public void popDynamicContent ( )

                public function popDynamicContent()
{
    array_pop($this->cacheStack);
}

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

定義場所: yii\base\View::pushDynamicContent()

動的コンテンツをサポートするクラスインスタンスを、現在アクティブな動的コンテンツクラスインスタンスのリストの最後に追加します。

public void pushDynamicContent ( yii\base\DynamicContentAwareInterface $instance )
$instance yii\base\DynamicContentAwareInterface

動的コンテンツをサポートするクラスインスタンス。

                public function pushDynamicContent(DynamicContentAwareInterface $instance)
{
    $this->cacheStack[] = $instance;
}

            
registerAssetBundle() publicメソッド

名前付きのアセットバンドルを登録します。

すべての依存アセットバンドルが登録されます。

public yii\web\AssetBundle registerAssetBundle ( $name, $position null )
$name string

アセットバンドルのクラス名 (先頭のバックスラッシュなし)

$position integer|null

設定されている場合、JavaScriptファイルの最小位置を強制します。これは、依存するアセットのJavaScriptファイルの位置に応じて調整されるか、要件を満たせない場合は失敗します。これがnullの場合、アセットバンドルの位置設定は変更されません。registerJsFile()でJavaScriptの位置の詳細を参照してください。

戻り値 yii\web\AssetBundle

登録されたアセットバンドルインスタンス

例外 yii\base\InvalidConfigException

アセットバンドルが存在しない場合、または循環依存関係が検出された場合

                public function registerAssetBundle($name, $position = null)
{
    if (!isset($this->assetBundles[$name])) {
        $am = $this->getAssetManager();
        $bundle = $am->getBundle($name);
        $this->assetBundles[$name] = false;
        // register dependencies
        $pos = isset($bundle->jsOptions['position']) ? $bundle->jsOptions['position'] : null;
        foreach ($bundle->depends as $dep) {
            $this->registerAssetBundle($dep, $pos);
        }
        $this->assetBundles[$name] = $bundle;
    } elseif ($this->assetBundles[$name] === false) {
        throw new InvalidConfigException("A circular dependency is detected for bundle '$name'.");
    } else {
        $bundle = $this->assetBundles[$name];
    }
    if ($position !== null) {
        $pos = isset($bundle->jsOptions['position']) ? $bundle->jsOptions['position'] : null;
        if ($pos === null) {
            $bundle->jsOptions['position'] = $pos = $position;
        } elseif ($pos > $position) {
            throw new InvalidConfigException("An asset bundle that depends on '$name' has a higher javascript file position configured than '$name'.");
        }
        // update position for all dependencies
        foreach ($bundle->depends as $dep) {
            $this->registerAssetBundle($dep, $pos);
        }
    }
    return $bundle;
}

            
registerAssetFiles() protectedメソッド

依存バンドルのファイルを含む、アセットバンドルによって提供されるすべてのファイルを登録します。

$assetBundlesからファイルが登録された後にバンドルを削除します。

protected void registerAssetFiles ( $name )
$name string

登録するバンドルの名前

                protected function registerAssetFiles($name)
{
    if (!isset($this->assetBundles[$name])) {
        return;
    }
    $bundle = $this->assetBundles[$name];
    if ($bundle) {
        foreach ($bundle->depends as $dep) {
            $this->registerAssetFiles($dep);
        }
        $bundle->registerAssetFiles($this);
    }
    unset($this->assetBundles[$name]);
}

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

CSRFメタタグを登録します。

各リクエストに対して新しいCSRFトークンを取得するために動的にレンダリングされます。

$view->registerCsrfMetaTags();

上記のコードは、<meta name="csrf-param" content="[yii\web\Request::$csrfParam]"><meta name="csrf-token" content="tTNpWKpdy-bx8ZmIq9R72...K1y8IP3XGkzZA=="> がページに追加される結果になります。

注: ActiveFormの非表示のCSRF入力は、yii.js からwindow.yii.refreshCsrfToken() を呼び出すことで自動的に更新されます。

public void registerCsrfMetaTags ( )

                public function registerCsrfMetaTags()
{
    $this->metaTags['csrf_meta_tags'] = $this->renderDynamic('return yii\helpers\Html::csrfMetaTags();');
}

            
registerCss() publicメソッド

CSSコードブロックを登録します。

public void registerCss ( $css, $options = [], $key null )
$css string

登録するCSSコードブロックの内容

$options array

<style>タグのHTML属性。

$key string|null

CSSコードブロックを識別するキー。nullの場合、$cssをキーとして使用します。同じキーで2つのCSSコードブロックが登録されている場合、後者が前者を上書きします。

                public function registerCss($css, $options = [], $key = null)
{
    $key = $key ?: md5($css);
    $this->css[$key] = Html::style($css, $options);
}

            
registerCssFile() publicメソッド

CSSファイルを登録します。

このメソッドは、CSSファイルの単純な登録に使用します。yii\web\AssetManagerの機能(URLへのタイムスタンプの追加やファイル公開オプションなど)を使用する場合は、代わりにyii\web\AssetBundleregisterAssetBundle()を使用してください。

public void registerCssFile ( $url, $options = [], $key null )
$url string

登録するCSSファイル。

$options array

リンクタグのHTML属性。yii\helpers\Html::cssFile()でサポートされているオプションを参照してください。次のオプションは特別に処理され、HTML属性としては扱われません。

  • depends: 配列。このCSSファイルが依存するアセットバンドルの名前を指定します。
  • appendTimestamp: ブール値。URLにタイムスタンプを追加するかどうかを指定します。
$key string|null

CSSスクリプトファイルを識別するキー。nullの場合、$urlをキーとして使用します。同じキーで2つのCSSファイルが登録されている場合、後者が前者を上書きします。

例外 yii\base\InvalidConfigException

                public function registerCssFile($url, $options = [], $key = null)
{
    $this->registerFile('css', $url, $options, $key);
}

            
registerJs() publicメソッド

JSコードブロックを登録します。

public void registerJs ( $js, $position self::POS_READY, $key null )
$js string

登録するJSコードブロック。

$position 整数

ページ内でJSスクリプトタグを挿入する位置。可能な値は以下の通りです。

  • POS_HEAD: headセクション内
  • POS_BEGIN: bodyセクションの先頭
  • POS_END: bodyセクションの末尾
  • POS_LOAD: jQuery(window).load()で囲まれます。この位置を使用すると、メソッドは自動的にjQuery jsファイルを登録します。
  • POS_READY: jQuery(document).ready()で囲まれます。これがデフォルト値です。この位置を使用すると、メソッドは自動的にjQuery jsファイルを登録します。
$key string|null

JSコードブロックを識別するキー。nullの場合、$jsをキーとして使用します。同じキーで2つのJSコードブロックが登録されている場合、後者が前者を上書きします。

                public function registerJs($js, $position = self::POS_READY, $key = null)
{
    $key = $key ?: md5($js);
    $this->js[$position][$key] = $js;
    if ($position === self::POS_READY || $position === self::POS_LOAD) {
        JqueryAsset::register($this);
    }
}

            
registerJsFile() publicメソッド

JSファイルを登録します。

このメソッドは、JSファイルの単純な登録に使用します。yii\web\AssetManagerの機能(URLへのタイムスタンプの追加やファイル公開オプションなど)を使用する場合は、代わりにyii\web\AssetBundleregisterAssetBundle()を使用してください。

public void registerJsFile ( $url, $options = [], $key null )
$url string

登録するJSファイル。

$options array

スクリプトタグのHTML属性。次のオプションは特別に処理され、HTML属性としては扱われません。

  • depends: 配列。このJSファイルが依存するアセットバンドルの名前を指定します。
  • position: ページ内でJSスクリプトタグを挿入する位置を指定します。可能な値は以下の通りです。
    • POS_HEAD: headセクション内
    • POS_BEGIN: bodyセクションの先頭
    • POS_END: bodyセクションの末尾。これがデフォルト値です。
  • appendTimestamp: ブール値。URLにタイムスタンプを追加するかどうかを指定します。

その他のサポートされているオプションについては、yii\helpers\Html::jsFile()を参照してください。

$key string|null

JSスクリプトファイルを識別するキー。nullの場合、$urlをキーとして使用します。同じ位置で同じキーで2つのJSファイルが登録されている場合、後者が前者を上書きします。位置オプションが優先されるため、キーは同じでも位置オプションが異なるファイルは互いに上書きしません。

例外 yii\base\InvalidConfigException

                public function registerJsFile($url, $options = [], $key = null)
{
    $this->registerFile('js', $url, $options, $key);
}

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

変数を定義するJSコードブロックを登録します。変数の名前はキーとして使用され、重複した変数名を防ぎます。

public void registerJsVar ( $name, $value, $position self::POS_HEAD )
$name string

変数の名前

$value array|string

変数の値

$position 整数

JavaScript変数を挿入するページ内での位置。可能な値は以下の通りです。

  • POS_HEAD: headセクション内。これがデフォルト値です。
  • POS_BEGIN: bodyセクションの先頭。
  • POS_END: bodyセクションの末尾。
  • POS_LOAD: jQuery(window).load()で囲まれます。この位置を使用すると、メソッドは自動的にjQuery jsファイルを登録します。
  • POS_READY: jQuery(document).ready()で囲まれます。この位置を使用すると、メソッドは自動的にjQuery jsファイルを登録します。

                public function registerJsVar($name, $value, $position = self::POS_HEAD)
{
    $js = sprintf('var %s = %s;', $name, \yii\helpers\Json::htmlEncode($value));
    $this->registerJs($js, $position, $name);
}

            
registerLinkTag() publicメソッド

リンクタグを登録します。

例えば、カスタムfaviconのリンクタグは次のように追加できます。

$view->registerLinkTag(['rel' => 'icon', 'type' => 'image/png', 'href' => '/myicon.png']);

これは、次のHTMLになります: <link rel="icon" type="image/png" href="/myicon.png">

注記: CSSスタイルシートのリンクタグを登録するには、代わりにregisterCssFile()を使用してください。この種のリンクタグには、より多くのオプションがあります。

public void registerLinkTag ( $options, $key null )
$options array

リンクタグのHTML属性。

$key string|null

リンクタグを識別するキー。同じキーで2つのリンクタグが登録されている場合、後者が前者を上書きします。nullの場合、新しいリンクタグは既存のタグに追加されます。

                public function registerLinkTag($options, $key = null)
{
    if ($key === null) {
        $this->linkTags[] = Html::tag('link', '', $options);
    } else {
        $this->linkTags[$key] = Html::tag('link', '', $options);
    }
}

            
registerMetaTag() publicメソッド

メタタグを登録します。

例えば、description メタタグは次のように追加できます。

$view->registerMetaTag([
    'name' => 'description',
    'content' => 'This website is about funny raccoons.'
]);

メタタグ<meta name="description" content="This website is about funny raccoons."> が生成されます。

public void registerMetaTag ( $options, $key null )
$options array

メタタグのHTML属性。

$key string|null

メタタグを識別するキー。同じキーで2つのメタタグが登録された場合、後者が前者を上書きします。nullの場合、新しいメタタグは既存のメタタグに追加されます。

                public function registerMetaTag($options, $key = null)
{
    if ($key === null) {
        $this->metaTags[] = Html::tag('meta', '', $options);
    } else {
        $this->metaTags[$key] = Html::tag('meta', '', $options);
    }
}

            
render() public メソッド

定義されている場所: yii\base\View::render()

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

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

  • パスエイリアス (例: "@app/views/site/index")
  • アプリケーション内の絶対パス (例: "//site/index"): ビュー名がダブルスラッシュで始まる場合。実際のビューファイルは、アプリケーションのビューパスで検索されます。
  • 現在のモジュール内の絶対パス (例: "/site/index"): ビュー名がシングルスラッシュで始まる場合。実際のビューファイルは、ビューパス現在のモジュールで検索されます。
  • 相対ビュー (例: "index"): ビュー名が@または/で始まらない場合。対応するビューファイルは、ビュー$contextビューパスで検索されます。$contextが指定されていない場合、現在レンダリングされているビューを含むディレクトリで検索されます(つまり、別のビュー内でビューをレンダリングする場合に発生します)。

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

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

ビュー名。

$params array

抽出され、ビューファイルで使用可能になるパラメータ(名前と値のペア)。

$context object|null

ビューに割り当てられ、後でビュー内で$contextを介してアクセスできるコンテキスト。コンテキストがyii\base\ViewContextInterfaceを実装している場合、相対ビュー名に対応するビューファイルを見つけるためにも使用できます。

戻り値 string

レンダリング結果。

例外 yii\base\ViewNotFoundException

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

例外 yii\base\InvalidCallException

ビューを解決できない場合。

                public function render($view, $params = [], $context = null)
{
    $viewFile = $this->findViewFile($view, $context);
    return $this->renderFile($viewFile, $params, $context);
}

            
renderAjax() public メソッド

AJAXリクエストに応答してビューをレンダリングします。

このメソッドはrender()と似ていますが、レンダリングされるビューをbeginPage()head()beginBody()endBody()endPage()の呼び出しで囲みます。これにより、ビューに登録されているJS/CSSスクリプトやファイルをレンダリング結果に挿入できます。

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

public string renderAjax ( $view, $params = [], $context null )
$view string

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

$params array

抽出され、ビューファイルで使用可能になるパラメータ(名前と値のペア)。

$context object|null

ビューをレンダリングするためにビューが使用するコンテキスト。nullの場合、既存の$contextが使用されます。

戻り値 string

レンダリング結果。

                public function renderAjax($view, $params = [], $context = null)
{
    $viewFile = $this->findViewFile($view, $context);
    ob_start();
    ob_implicit_flush(false);
    $this->beginPage();
    $this->head();
    $this->beginBody();
    echo $this->renderFile($viewFile, $params, $context);
    $this->endBody();
    $this->endPage(true);
    return ob_get_clean();
}

            
renderBodyBeginHtml() protected メソッド

本文セクションの先頭に挿入されるコンテンツをレンダリングします。

コンテンツは、登録されたJSコードブロックとファイルを使用してレンダリングされます。

protected string renderBodyBeginHtml ( )
戻り値 string

レンダリングされたコンテンツ。

                protected function renderBodyBeginHtml()
{
    $lines = [];
    if (!empty($this->jsFiles[self::POS_BEGIN])) {
        $lines[] = implode("\n", $this->jsFiles[self::POS_BEGIN]);
    }
    if (!empty($this->js[self::POS_BEGIN])) {
        $lines[] = Html::script(implode("\n", $this->js[self::POS_BEGIN]));
    }
    return empty($lines) ? '' : implode("\n", $lines);
}

            
renderBodyEndHtml() protected メソッド

本文セクションの最後に挿入されるコンテンツをレンダリングします。

コンテンツは、登録されたJSコードブロックとファイルを使用してレンダリングされます。

protected string renderBodyEndHtml ( $ajaxMode )
$ajaxMode boolean

ビューがAJAXモードでレンダリングされているかどうか。trueの場合、POS_READYPOS_LOADの位置に登録されたJSスクリプトは、通常のスクリプトのようにビューの最後にレンダリングされます。

戻り値 string

レンダリングされたコンテンツ。

                protected function renderBodyEndHtml($ajaxMode)
{
    $lines = [];
    if (!empty($this->jsFiles[self::POS_END])) {
        $lines[] = implode("\n", $this->jsFiles[self::POS_END]);
    }
    if ($ajaxMode) {
        $scripts = [];
        if (!empty($this->js[self::POS_END])) {
            $scripts[] = implode("\n", $this->js[self::POS_END]);
        }
        if (!empty($this->js[self::POS_READY])) {
            $scripts[] = implode("\n", $this->js[self::POS_READY]);
        }
        if (!empty($this->js[self::POS_LOAD])) {
            $scripts[] = implode("\n", $this->js[self::POS_LOAD]);
        }
        if (!empty($scripts)) {
            $lines[] = Html::script(implode("\n", $scripts));
        }
    } else {
        if (!empty($this->js[self::POS_END])) {
            $lines[] = Html::script(implode("\n", $this->js[self::POS_END]));
        }
        if (!empty($this->js[self::POS_READY])) {
            $js = "jQuery(function ($) {\n" . implode("\n", $this->js[self::POS_READY]) . "\n});";
            $lines[] = Html::script($js);
        }
        if (!empty($this->js[self::POS_LOAD])) {
            $js = "jQuery(window).on('load', function () {\n" . implode("\n", $this->js[self::POS_LOAD]) . "\n});";
            $lines[] = Html::script($js);
        }
    }
    return empty($lines) ? '' : implode("\n", $lines);
}

            
renderDynamic() public メソッド

定義されている場所: yii\base\View::renderDynamic()

指定されたPHP文によって返された動的コンテンツをレンダリングします。

このメソッドは、コンテンツの一部(動的コンテンツと呼ばれる)をキャッシュしない必要がある場合、コンテンツキャッシング(フラグメントキャッシングとページキャッシング)と組み合わせて主に使用されます。動的コンテンツは、いくつかのPHPステートメントによって返される必要があります。

こちらも参照してください https://github.com/yiisoft/yii2/issues/17673.

public string renderDynamic ( $statements )
$statements string

動的コンテンツを生成するためのPHP文。

戻り値 string

動的コンテンツのプレースホルダー、または現在アクティブなコンテンツキャッシュがない場合の動的コンテンツ。

registerJS()やregisterJSFile()など、間接的にレイアウトを変更するほとんどのメソッドは、動的レンダリングでは機能しません。

                public function renderDynamic($statements)
{
    if (!empty($this->cacheStack)) {
        $n = count($this->dynamicPlaceholders);
        $placeholder = "<![CDATA[YII-DYNAMIC-$n]]>";
        $this->addDynamicPlaceholder($placeholder, $statements);
        return $placeholder;
    }
    return $this->evaluateDynamicContent($statements);
}

            
renderFile() public メソッド

定義されている場所: yii\base\View::renderFile()

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

$themeが有効になっている(nullではない)場合、利用可能な限り、ビューファイルのテーマ付きバージョンをレンダリングしようとします。

このメソッドは、ビューファイルをローカライズするためにyii\helpers\FileHelper::localize()を呼び出します。

rendererが有効になっている(nullではない)場合、このメソッドはそれをビューファイルのレンダリングに使用します。そうでない場合、ビューファイルを通常のPHPファイルとしてインクルードし、その出力をキャプチャして文字列として返します。

public string renderFile ( $viewFile, $params = [], $context null )
$viewFile string

ビューファイル。これは絶対ファイルパスまたはそのエイリアスのいずれかです。

$params array

抽出され、ビューファイルで使用可能になるパラメータ(名前と値のペア)。

$context object|null

ビューをレンダリングするためにビューが使用するコンテキスト。nullの場合、既存の$contextが使用されます。

戻り値 string

レンダリング結果。

例外 yii\base\ViewNotFoundException

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

                public function renderFile($viewFile, $params = [], $context = null)
{
    $viewFile = $requestedFile = Yii::getAlias($viewFile);
    if ($this->theme !== null) {
        $viewFile = $this->theme->applyTo($viewFile);
    }
    if (is_file($viewFile)) {
        $viewFile = FileHelper::localize($viewFile);
    } else {
        throw new ViewNotFoundException("The view file does not exist: $viewFile");
    }
    $oldContext = $this->context;
    if ($context !== null) {
        $this->context = $context;
    }
    $output = '';
    $this->_viewFiles[] = [
        'resolved' => $viewFile,
        'requested' => $requestedFile
    ];
    if ($this->beforeRender($viewFile, $params)) {
        Yii::debug("Rendering view file: $viewFile", __METHOD__);
        $ext = pathinfo($viewFile, PATHINFO_EXTENSION);
        if (isset($this->renderers[$ext])) {
            if (is_array($this->renderers[$ext]) || is_string($this->renderers[$ext])) {
                $this->renderers[$ext] = Yii::createObject($this->renderers[$ext]);
            }
            /* @var $renderer ViewRenderer */
            $renderer = $this->renderers[$ext];
            $output = $renderer->render($this, $viewFile, $params);
        } else {
            $output = $this->renderPhpFile($viewFile, $params);
        }
        $this->afterRender($viewFile, $params, $output);
    }
    array_pop($this->_viewFiles);
    $this->context = $oldContext;
    return $output;
}

            
renderHeadHtml() protected メソッド

ヘッダーセクションに挿入されるコンテンツをレンダリングします。

コンテンツは、登録されたメタタグ、リンクタグ、CSS/JSコードブロック、ファイルを使用してレンダリングされます。

protected string renderHeadHtml ( )
戻り値 string

レンダリングされたコンテンツ。

                protected function renderHeadHtml()
{
    $lines = [];
    if (!empty($this->metaTags)) {
        $lines[] = implode("\n", $this->metaTags);
    }
    if (!empty($this->linkTags)) {
        $lines[] = implode("\n", $this->linkTags);
    }
    if (!empty($this->cssFiles)) {
        $lines[] = implode("\n", $this->cssFiles);
    }
    if (!empty($this->css)) {
        $lines[] = implode("\n", $this->css);
    }
    if (!empty($this->jsFiles[self::POS_HEAD])) {
        $lines[] = implode("\n", $this->jsFiles[self::POS_HEAD]);
    }
    if (!empty($this->js[self::POS_HEAD])) {
        $lines[] = Html::script(implode("\n", $this->js[self::POS_HEAD]));
    }
    return empty($lines) ? '' : implode("\n", $lines);
}

            
renderPhpFile() public メソッド

定義されている場所: yii\base\View::renderPhpFile()

ビューファイルをPHPスクリプトとしてレンダリングします。

このメソッドは、ビューファイルをPHPスクリプトとして扱い、そのファイルをインクルードします。指定されたパラメータを抽出し、ビューファイルで使用できるようにします。インクルードされたビューファイルの出力を取り込み、文字列として返します。

このメソッドは、主にビューレンダラーまたはrenderFile()によって呼び出されるべきです。

public string renderPhpFile ( $_file_, $_params_ = [] )
$_file_ string

ビューファイル。

$_params_ array

抽出され、ビューファイルで使用可能になるパラメータ(名前と値のペア)。

戻り値 string

レンダリング結果。

例外 例外 (Throwable)

                public function renderPhpFile($_file_, $_params_ = [])
{
    $_obInitialLevel_ = ob_get_level();
    ob_start();
    ob_implicit_flush(false);
    extract($_params_, EXTR_OVERWRITE);
    try {
        require $_file_;
        return ob_get_clean();
    } catch (\Exception $e) {
        while (ob_get_level() > $_obInitialLevel_) {
            if (!@ob_end_clean()) {
                ob_clean();
            }
        }
        throw $e;
    } catch (\Throwable $e) {
        while (ob_get_level() > $_obInitialLevel_) {
            if (!@ob_end_clean()) {
                ob_clean();
            }
        }
        throw $e;
    }
}

            
setAssetManager() publicメソッド

アセットマネージャーを設定します。

public void setAssetManager ( $value )
$value yii\web\AssetManager

アセットマネージャー

                public function setAssetManager($value)
{
    $this->_assetManager = $value;
}

            
setDynamicPlaceholders() publicメソッド

定義場所: yii\base\View::setDynamicPlaceholders()

動的コンテンツのプレースホルダーのリストを設定します。このメソッドは、コンテンツキャッシング機能の実装に内部的に使用されます。

public void setDynamicPlaceholders ( $placeholders )
$placeholders array

プレースホルダーのリスト。

                public function setDynamicPlaceholders($placeholders)
{
    $this->dynamicPlaceholders = $placeholders;
}

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

            

イベントの詳細

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

EVENT_BEGIN_BODY yii\web\Event型のイベント

beginBody()によってトリガーされるイベントです。

EVENT_END_BODY yii\web\Event型のイベント

endBody()によってトリガーされるイベントです。