0 フォロワー

クラス yii\web\UrlManager

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

UrlManager は、一連のルールに基づいて HTTP リクエストの解析と URL の作成を処理します。

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

アプリケーション構成の components に配列を追加することで、その構成を変更できます。次の例を参照してください。

'urlManager' => [
    'enablePrettyUrl' => true,
    'rules' => [
        // your rules go here
    ],
    // ...
]

ルールは yii\web\UrlRuleInterface を実装するクラスであり、デフォルトでは yii\web\UrlRule です。ルールをネストするために、yii\web\GroupUrlRule クラスもあります。

UrlManager の詳細と使用方法については、ルーティングに関するガイド記事を参照してください。

公開プロパティ

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

プロパティ 説明 定義元
$baseUrl string createUrl() が作成された URL の前に付加するために使用するベース URL。 yii\web\UrlManager
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$cache yii\caching\CacheInterface|array|string|boolean キャッシュオブジェクトまたはキャッシュオブジェクトのアプリケーションコンポーネント ID。 yii\web\UrlManager
$cacheKey string キャッシュされたルールのキャッシュキー yii\web\UrlManager
$enablePrettyUrl boolean プリティ URL を有効にするかどうか。 yii\web\UrlManager
$enableStrictParsing boolean 厳密な解析を有効にするかどうか。 yii\web\UrlManager
$hostInfo string createAbsoluteUrl() が作成された URL の前に付加するために使用するホスト情報 (例: https://www.example.com)。 yii\web\UrlManager
$normalizer yii\web\UrlNormalizer|array|string|false この UrlManager で使用される yii\web\UrlNormalizer の構成。 yii\web\UrlManager
$routeParam string ルートの GET パラメータ名。 yii\web\UrlManager
$ruleConfig array URL ルールのデフォルト構成。 yii\web\UrlManager
$rules array $enablePrettyUrltrue の場合の URL の作成と解析のルール。 yii\web\UrlManager
$scriptUrl string createUrl() が作成された URL の前に付加するために使用するエントリスクリプト URL。 yii\web\UrlManager
$showScriptName boolean 構築された URL にエントリスクリプト名を表示するかどうか。 yii\web\UrlManager
$suffix string $enablePrettyUrltrue の場合に使用される URL サフィックス。 yii\web\UrlManager

保護されたプロパティ

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

プロパティ 説明 定義元

公開メソッド

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

メソッド 説明 定義元
__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
addRules() 追加の URL ルールを追加します。 yii\web\UrlManager
attachBehavior() ビヘイビアをこのコンポーネントにアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントが動作するビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
createAbsoluteUrl() 指定されたルートとクエリパラメータを使用して絶対 URL を作成します。 yii\web\UrlManager
createUrl() 指定されたルートとクエリパラメータを使用して URL を作成します。 yii\web\UrlManager
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getBaseUrl() createUrl() が生成する URL に先頭に付加するベース URL を返します。 yii\web\UrlManager
getBehavior() 指定された名前のビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getHostInfo() createAbsoluteUrl() が生成する URL に先頭に付加するホスト情報を返します。 yii\web\UrlManager
getScriptUrl() createUrl() が生成する URL に先頭に付加するエントリスクリプト URL を返します。 yii\web\UrlManager
hasEventHandlers() 指定された名前のイベントにハンドラがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() UrlManager を初期化します。 yii\web\UrlManager
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
on() イベントにイベントハンドラをアタッチします。 yii\base\Component
parseRequest() ユーザリクエストを解析します。 yii\web\UrlManager
setBaseUrl() createUrl() が生成する URL に先頭に付加するベース URL を設定します。 yii\web\UrlManager
setHostInfo() createAbsoluteUrl() が生成する URL に先頭に付加するホスト情報を設定します。 yii\web\UrlManager
setScriptUrl() createUrl() が生成する URL に先頭に付加するエントリスクリプト URL を設定します。 yii\web\UrlManager
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

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

メソッド 説明 定義元
buildRules() 与えられたルール宣言から URL ルールオブジェクトを構築します。 yii\web\UrlManager
canBeCached() ルールに対する createUrl() の結果を内部キャッシュにキャッシュすべきかどうかを示す値を返します。 yii\web\UrlManager
getBuiltRulesFromCache() キャッシュから $ruleDeclarations に関連付けられた構築済みの URL ルールを提供します。 yii\web\UrlManager
getUrlFromCache() 内部キャッシュに存在する場合、URL を取得します。 yii\web\UrlManager
setBuiltRulesCache() キャッシュキーの一部として $rulesDeclaration を使用して、$builtRules をキャッシュに保存します。 yii\web\UrlManager
setRuleToCache() ルール (例: yii\web\UrlRule) を内部キャッシュに保存します。 yii\web\UrlManager

プロパティの詳細

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

$baseUrl パブリックプロパティ

createUrl() が作成された URL の前に付加するために使用するベース URL。

public string $baseUrl null
$cache パブリックプロパティ

キャッシュオブジェクト、またはキャッシュオブジェクトのアプリケーションコンポーネント ID。アプリケーションコンポーネントを使用したくない場合に yii\caching\CacheInterface インスタンスを作成するために使用される配列でも構いません。コンパイルされた URL ルールは、利用可能な場合、このキャッシュオブジェクトを介してキャッシュされます。

UrlManager オブジェクトの作成後、このプロパティを変更する場合は、キャッシュオブジェクトのみを割り当てる必要があります。URL ルールをキャッシュしたくない場合は、このプロパティを false または null に設定します。

キャッシュエントリは、キャッシュ設定の $defaultDuration で設定された時間の間保存されます。これはデフォルトでは無制限です。$rules が頻繁に変更される場合は、この値を調整する必要があります。

$cacheKey 保護されたプロパティ (バージョン 2.0.8 以降利用可能)

キャッシュされたルールのキャッシュキー

protected string $cacheKey __CLASS__
$enablePrettyUrl パブリックプロパティ

きれいな URL を有効にするかどうか。すべてのパラメータを URL のクエリ文字列部分に入れる代わりに、きれいな URL ではパス情報を使用して一部のパラメータを表現できるため、"/index.php?r=news%2Fview&id=100" の代わりに "/news/Yii-is-released" のように、よりユーザーフレンドリーな URL を生成できます。

public boolean $enablePrettyUrl false
$enableStrictParsing パブリックプロパティ

厳密な解析を有効にするかどうか。厳密な解析が有効になっている場合、受信した要求 URL は有効な要求として処理されるために、少なくとも $rules のいずれかと一致する必要があります。それ以外の場合、要求のパス情報部分は要求されたルートとして処理されます。このプロパティは、$enablePrettyUrltrue の場合にのみ使用されます。

$hostInfo パブリックプロパティ

createAbsoluteUrl() が作成された URL の前に付加するために使用するホスト情報 (例: https://www.example.com)。

public string $hostInfo null
$normalizer パブリックプロパティ (バージョン 2.0.10 以降利用可能)

この UrlManager で使用される yii\web\UrlNormalizer の構成。デフォルト値は false であり、正規化はスキップされることを意味します。URL の正規化を有効にする場合は、このプロパティを手動で構成する必要があります。例:

[
    'class' => 'yii\web\UrlNormalizer',
    'collapseSlashes' => true,
    'normalizeTrailingSlash' => true,
]
$routeParam パブリックプロパティ

ルートの GET パラメータ名。このプロパティは、$enablePrettyUrlfalse の場合にのみ使用されます。

public string $routeParam 'r'
$ruleConfig public プロパティ

URLルールのデフォルト設定です。$rules で指定された個々のルール設定は、ルールの同じプロパティが設定されている場合、優先されます。

public array $ruleConfig = [
    
'class' => 'yii\web\UrlRule',
]
$rules public プロパティ

$enablePrettyUrltrue の場合にURLを作成および解析するためのルールです。このプロパティは、$enablePrettyUrltrue の場合にのみ使用されます。配列の各要素は、単一のURLルールを作成するための設定配列です。設定は、ルールオブジェクトを作成するために使用される前に、まず $ruleConfig とマージされます。

ルールが パターンルート のみを指定する場合、特別なショートカット形式を使用できます: 'pattern' => 'route'。つまり、設定配列を使用する代わりに、キーをパターン、値を対応するルートとして使用できます。たとえば、'post/<id:\d+>' => 'post/view' のようにします。

RESTfulルーティングの場合、上記のショートカット形式では、ルールが適用されるべき HTTP動詞 を指定することもできます。パターンにスペースで区切ってプレフィックスを付けることで指定できます。たとえば、'PUT post/<id:\d+>' => 'post/update' のようにします。複数の動詞をカンマで区切って指定できます。例: 'POST,PUT post/index' => 'post/create'。ショートカット形式でサポートされている動詞は、GET、HEAD、POST、PUT、PATCH、DELETE です。この方法で動詞を指定すると、mode は PARSING_ONLY に設定されるため、通常のGETリクエストに動詞を指定することは通常ないことに注意してください。

以下は、RESTful CRUDコントローラの設定例です。

[
    'dashboard' => 'site/index',

    'POST <controller:[\w-]+>' => '<controller>/create',
    '<controller:[\w-]+>s' => '<controller>/index',

    'PUT <controller:[\w-]+>/<id:\d+>'    => '<controller>/update',
    'DELETE <controller:[\w-]+>/<id:\d+>' => '<controller>/delete',
    '<controller:[\w-]+>/<id:\d+>'        => '<controller>/view',
];

UrlManagerオブジェクトの作成後にこのプロパティを変更する場合は、ルール設定ではなくルールオブジェクトで配列を設定してください。

public array $rules = []
$scriptUrl public プロパティ

createUrl() が作成された URL の前に付加するために使用するエントリスクリプト URL。

public string $scriptUrl null
$showScriptName public プロパティ

構築されたURLにエントリスクリプト名を表示するかどうか。デフォルトは true です。このプロパティは、$enablePrettyUrltrue の場合にのみ使用されます。

public boolean $showScriptName true
$suffix public プロパティ

$enablePrettyUrltrue のときに使用されるURLサフィックス。たとえば、".html" を使用して、URLが静的なHTMLページを指すように見せることができます。このプロパティは、$enablePrettyUrltrue の場合にのみ使用されます。

public string $suffix null

メソッド詳細

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

__call() public メソッド

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

クラスメソッドではない指定されたメソッドを呼び出します。

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

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

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

メソッド名

$params array

メソッドパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

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

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

            
__clone() public メソッド

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

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

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

public void __clone ( )

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

            
__construct() public メソッド

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

コンストラクタ。

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

  • 与えられた設定 $config でオブジェクトを初期化します。
  • init() を呼び出します。

このメソッドが子クラスでオーバーライドされている場合は、次のことを推奨します。

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

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

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

            
__get() public メソッド

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

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

このメソッドは、次の順序でチェックし、それに応じて処理を行います。

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

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

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

public mixed __get ( $name )
$name string

プロパティ名

return mixed

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

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

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

            
__isset() public メソッド

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

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

このメソッドは、次の順序でチェックし、それに応じて処理を行います。

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

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

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

public boolean __isset ( $name )
$name string

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

return boolean

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

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

            
__set() public メソッド

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

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

このメソッドは、次の順序でチェックし、それに応じて処理を行います。

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

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

以下も参照してください: __get().

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

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

$value mixed

プロパティの値

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

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

            
__unset() public メソッド

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

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

このメソッドは、次の順序でチェックし、それに応じて処理を行います。

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

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

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

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

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

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

            
addRules() public メソッド

追加の URL ルールを追加します。

このメソッドは、指定されたルール宣言を解析するために buildRules() を呼び出し、既存の $rules にそれらを追加または挿入します。

$enablePrettyUrlfalse の場合、このメソッドは何もしないことに注意してください。

public void addRules ( $rules, $append true )
$rules array

追加する新しいルール。各配列要素は単一のルール宣言を表します。許容されるルール形式については $rules を参照してください。

$append boolean

既存のルールの最後に追加して、新しいルールを追加するかどうか。

                public function addRules($rules, $append = true)
{
    if (!$this->enablePrettyUrl) {
        return;
    }
    $rules = $this->buildRules($rules);
    if ($append) {
        $this->rules = array_merge($this->rules, $rules);
    } else {
        $this->rules = array_merge($rules, $this->rules);
    }
}

            
attachBehavior() public メソッド

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

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

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

以下も参照してください: detachBehavior().

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

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

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

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

ビヘイビアオブジェクト

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

            
attachBehaviors() public メソッド

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

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

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

以下も参照してください: attachBehavior().

public void attachBehaviors ( $behaviors )
$behaviors array

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

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

            
behaviors() public メソッド

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

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

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

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

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

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

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

public array behaviors ( )
return array

ビヘイビア構成。

                public function behaviors()
{
    return [];
}

            
buildRules() protected メソッド

与えられたルール宣言から URL ルールオブジェクトを構築します。

protected yii\web\UrlRuleInterface[] buildRules ( $ruleDeclarations )
$ruleDeclarations array

ルール宣言。各配列要素は単一のルール宣言を表します。許容されるルール形式については $rules を参照してください。

return yii\web\UrlRuleInterface[]

指定されたルール宣言から構築されたルールオブジェクト

throws yii\base\InvalidConfigException

ルール宣言が無効な場合

                protected function buildRules($ruleDeclarations)
{
    $builtRules = $this->getBuiltRulesFromCache($ruleDeclarations);
    if ($builtRules !== false) {
        return $builtRules;
    }
    $builtRules = [];
    $verbs = 'GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS';
    foreach ($ruleDeclarations as $key => $rule) {
        if (is_string($rule)) {
            $rule = ['route' => $rule];
            if (preg_match("/^((?:($verbs),)*($verbs))\\s+(.*)$/", $key, $matches)) {
                $rule['verb'] = explode(',', $matches[1]);
                $key = $matches[4];
            }
            $rule['pattern'] = $key;
        }
        if (is_array($rule)) {
            $rule = Yii::createObject(array_merge($this->ruleConfig, $rule));
        }
        if (!$rule instanceof UrlRuleInterface) {
            throw new InvalidConfigException('URL rule class must implement UrlRuleInterface.');
        }
        $builtRules[] = $rule;
    }
    $this->setBuiltRulesCache($ruleDeclarations, $builtRules);
    return $builtRules;
}

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

ルールに対する createUrl() の結果を内部キャッシュにキャッシュすべきかどうかを示す値を返します。

以下も参照してください

protected boolean canBeCached ( yii\web\UrlRuleInterface $rule )
$rule yii\web\UrlRuleInterface
return boolean

結果をキャッシュする必要がある場合は true、そうでない場合は false

                protected function canBeCached(UrlRuleInterface $rule)
{
    return
        // if rule does not provide info about create status, we cache it every time to prevent bugs like #13350
        // @see https://github.com/yiisoft/yii2/pull/13350#discussion_r114873476
        !method_exists($rule, 'getCreateUrlStatus') || ($status = $rule->getCreateUrlStatus()) === null
        || $status === UrlRule::CREATE_STATUS_SUCCESS
        || $status & UrlRule::CREATE_STATUS_PARAMS_MISMATCH;
}

            
canGetProperty() public メソッド

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

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

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

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

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

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return boolean

プロパティが読み取り可能かどうか

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

            
canSetProperty() public メソッド

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

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

プロパティは、以下の場合に書き込み可能です。

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

下記も参照してください。 canGetProperty().

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return boolean

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

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

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

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

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

public static string className ( )
return string

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

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

            
createAbsoluteUrl() public メソッド

指定されたルートとクエリパラメータを使用して絶対 URL を作成します。

このメソッドは、createUrl() によって作成された URL の先頭に、$hostInfo を付加します。

yii\helpers\Url::toRoute() とは異なり、このメソッドは常に指定されたルートを絶対ルートとして扱うことに注意してください。

下記も参照してください。 createUrl().

public string createAbsoluteUrl ( $params, $scheme null )
$params string|array

ルートを表す文字列 (例: site/index) または、クエリパラメータ付きのルートを表す配列 (例: ['site/index', 'param1' => 'value1']) を使用します。

$scheme string|null

URL に使用するスキーム (httphttps、またはプロトコル相対 URL の場合は空文字列)。指定しない場合は、現在のリクエストのスキームが使用されます。

return string

作成された URL

                public function createAbsoluteUrl($params, $scheme = null)
{
    $params = (array) $params;
    $url = $this->createUrl($params);
    if (strpos($url, '://') === false) {
        $hostInfo = $this->getHostInfo();
        if (strncmp($url, '//', 2) === 0) {
            $url = substr($hostInfo, 0, strpos($hostInfo, '://')) . ':' . $url;
        } else {
            $url = $hostInfo . $url;
        }
    }
    return Url::ensureScheme($url, $scheme);
}

            
createUrl() public メソッド

指定されたルートとクエリパラメータを使用して URL を作成します。

ルートは、文字列 (例: site/index) として指定できます。作成する URL に追加のクエリパラメータを指定する場合は、配列を使用することもできます。配列形式は次のようである必要があります。

// generates: /index.php?r=site%2Findex&param1=value1&param2=value2
['site/index', 'param1' => 'value1', 'param2' => 'value2']

アンカー付きの URL を作成する場合は、# パラメータを使用する配列形式を使用できます。例えば、

// generates: /index.php?r=site%2Findex&param1=value1#name
['site/index', 'param1' => 'value1', '#' => 'name']

作成される URL は相対 URL です。絶対 URL を作成するには、createAbsoluteUrl() を使用してください。

yii\helpers\Url::toRoute() とは異なり、このメソッドは常に指定されたルートを絶対ルートとして扱うことに注意してください。

public string createUrl ( $params )
$params string|array

ルートを表す文字列 (例: site/index) または、クエリパラメータ付きのルートを表す配列 (例: ['site/index', 'param1' => 'value1']) を使用します。

return string

作成された URL

                public function createUrl($params)
{
    $params = (array) $params;
    $anchor = isset($params['#']) ? '#' . $params['#'] : '';
    unset($params['#'], $params[$this->routeParam]);
    $route = trim(isset($params[0]) ? $params[0] : '', '/');
    unset($params[0]);
    $baseUrl = $this->showScriptName || !$this->enablePrettyUrl ? $this->getScriptUrl() : $this->getBaseUrl();
    if ($this->enablePrettyUrl) {
        $cacheKey = $route . '?';
        foreach ($params as $key => $value) {
            if ($value !== null) {
                $cacheKey .= $key . '&';
            }
        }
        $url = $this->getUrlFromCache($cacheKey, $route, $params);
        if ($url === false) {
            /* @var $rule UrlRule */
            foreach ($this->rules as $rule) {
                if (in_array($rule, $this->_ruleCache[$cacheKey], true)) {
                    // avoid redundant calls of `UrlRule::createUrl()` for rules checked in `getUrlFromCache()`
                    // @see https://github.com/yiisoft/yii2/issues/14094
                    continue;
                }
                $url = $rule->createUrl($this, $route, $params);
                if ($this->canBeCached($rule)) {
                    $this->setRuleToCache($cacheKey, $rule);
                }
                if ($url !== false) {
                    break;
                }
            }
        }
        if ($url !== false) {
            if (strpos($url, '://') !== false) {
                if ($baseUrl !== '' && ($pos = strpos($url, '/', 8)) !== false) {
                    return substr($url, 0, $pos) . $baseUrl . substr($url, $pos) . $anchor;
                }
                return $url . $baseUrl . $anchor;
            } elseif (strncmp($url, '//', 2) === 0) {
                if ($baseUrl !== '' && ($pos = strpos($url, '/', 2)) !== false) {
                    return substr($url, 0, $pos) . $baseUrl . substr($url, $pos) . $anchor;
                }
                return $url . $baseUrl . $anchor;
            }
            $url = ltrim($url, '/');
            return "$baseUrl/{$url}{$anchor}";
        }
        if ($this->suffix !== null) {
            $route .= $this->suffix;
        }
        if (!empty($params) && ($query = http_build_query($params)) !== '') {
            $route .= '?' . $query;
        }
        $route = ltrim($route, '/');
        return "$baseUrl/{$route}{$anchor}";
    }
    $url = "$baseUrl?{$this->routeParam}=" . urlencode($route);
    if (!empty($params) && ($query = http_build_query($params)) !== '') {
        $url .= '&' . $query;
    }
    return $url . $anchor;
}

            
detachBehavior() public メソッド

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

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

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

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

ビヘイビアの名前。

return yii\base\Behavior|null

切り離されたビヘイビア。ビヘイビアが存在しない場合は Null。

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

            
detachBehaviors() public メソッド

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

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

public void detachBehaviors ( )

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

            
ensureBehaviors() public メソッド

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

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

public void ensureBehaviors ( )

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

            
getBaseUrl() public メソッド

createUrl() が生成する URL に先頭に付加するベース URL を返します。

デフォルトでは、yii\web\Request::$baseUrl になります。これは主に、$enablePrettyUrltrue で、$showScriptNamefalse の場合に使用されます。

public string getBaseUrl ( )
return string

createUrl() が作成された URL の前に付加するために使用するベース URL。

throws yii\base\InvalidConfigException

コンソールアプリケーションで実行中で、$baseUrl が構成されていない場合。

                public function getBaseUrl()
{
    if ($this->_baseUrl === null) {
        $request = Yii::$app->getRequest();
        if ($request instanceof Request) {
            $this->_baseUrl = $request->getBaseUrl();
        } else {
            throw new InvalidConfigException('Please configure UrlManager::baseUrl correctly as you are running a console application.');
        }
    }
    return $this->_baseUrl;
}

            
getBehavior() public メソッド

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

指定された名前のビヘイビアオブジェクトを返します。

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

ビヘイビア名

return yii\base\Behavior|null

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

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

            
getBehaviors() public メソッド

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

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

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

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

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

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

キャッシュから $ruleDeclarations に関連付けられた構築済みの URL ルールを提供します。

protected yii\web\UrlRuleInterface[]|false getBuiltRulesFromCache ( $ruleDeclarations )
$ruleDeclarations array

ルール宣言。各配列要素は単一のルール宣言を表します。許容されるルール形式については $rules を参照してください。

return yii\web\UrlRuleInterface[]|false

指定されたルール宣言から構築されたルールオブジェクト、または、この定義のキャッシュ項目が存在しない場合はブール値 false

                protected function getBuiltRulesFromCache($ruleDeclarations)
{
    $cache = $this->ensureCache();
    if (!$cache) {
        return false;
    }
    return $cache->get([$this->cacheKey, $this->ruleConfig, $ruleDeclarations]);
}

            
getHostInfo() public メソッド

createAbsoluteUrl() が生成する URL に先頭に付加するホスト情報を返します。

public string getHostInfo ( )
return string

createAbsoluteUrl() が作成された URL の前に付加するために使用するホスト情報 (例: https://www.example.com)。

throws yii\base\InvalidConfigException

コンソールアプリケーションで実行していて、$hostInfo が構成されていない場合。

                public function getHostInfo()
{
    if ($this->_hostInfo === null) {
        $request = Yii::$app->getRequest();
        if ($request instanceof \yii\web\Request) {
            $this->_hostInfo = $request->getHostInfo();
        } else {
            throw new InvalidConfigException('Please configure UrlManager::hostInfo correctly as you are running a console application.');
        }
    }
    return $this->_hostInfo;
}

            
getScriptUrl() public メソッド

createUrl() が生成する URL に先頭に付加するエントリスクリプト URL を返します。

デフォルトでは yii\web\Request::$scriptUrl になります。これは主に、$enablePrettyUrlfalse の場合、または $showScriptNametrue の場合に使用されます。

public string getScriptUrl ( )
return string

createUrl() が作成された URL の前に付加するために使用するエントリスクリプト URL。

throws yii\base\InvalidConfigException

コンソールアプリケーションで実行していて、$scriptUrl が構成されていない場合。

                public function getScriptUrl()
{
    if ($this->_scriptUrl === null) {
        $request = Yii::$app->getRequest();
        if ($request instanceof Request) {
            $this->_scriptUrl = $request->getScriptUrl();
        } else {
            throw new InvalidConfigException('Please configure UrlManager::scriptUrl correctly as you are running a console application.');
        }
    }
    return $this->_scriptUrl;
}

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

内部キャッシュに存在する場合、URL を取得します。

下記も参照してください。 createUrl().

protected boolean|string getUrlFromCache ( $cacheKey, $route, $params )
$cacheKey string

データを保存するための生成されたキャッシュキー。

$route string

ルート(例: site/index)。

$params array

ルールパラメーター。

return boolean|string

作成された URL

                protected function getUrlFromCache($cacheKey, $route, $params)
{
    if (!empty($this->_ruleCache[$cacheKey])) {
        foreach ($this->_ruleCache[$cacheKey] as $rule) {
            /* @var $rule UrlRule */
            if (($url = $rule->createUrl($this, $route, $params)) !== false) {
                return $url;
            }
        }
    } else {
        $this->_ruleCache[$cacheKey] = [];
    }
    return false;
}

            
hasEventHandlers() public メソッド

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

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

public boolean hasEventHandlers ( $name )
$name string

イベント名

return boolean

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

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

            
hasMethod() public メソッド

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

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

メソッドが定義されている場合は、

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

プロパティ名

$checkBehaviors boolean

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

return boolean

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

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

            
hasProperty() public メソッド

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

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

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

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

以下も参照してください

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return boolean

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

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

            
init() public メソッド

UrlManager を初期化します。

public void init ( )

                public function init()
{
    parent::init();
    if ($this->normalizer !== false) {
        $this->normalizer = Yii::createObject($this->normalizer);
        if (!$this->normalizer instanceof UrlNormalizer) {
            throw new InvalidConfigException('`' . get_class($this) . '::normalizer` should be an instance of `' . UrlNormalizer::className() . '` or its DI compatible configuration.');
        }
    }
    if (!$this->enablePrettyUrl) {
        return;
    }
    if (!empty($this->rules)) {
        $this->rules = $this->buildRules($this->rules);
    }
}

            
off() public メソッド

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

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

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

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

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

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

イベント名

$handler callable|null

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

return boolean

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

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

            
on() public メソッド

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

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

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

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

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

function ($event)

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

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

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

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

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

イベント名

$handler callable

イベントハンドラー

$data mixed

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

$append boolean

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

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

            
parseRequest() public メソッド

ユーザリクエストを解析します。

public array|boolean parseRequest ( $request )
$request yii\web\Request

リクエストコンポーネント

return 配列|真偽値

ルートと関連付けられたパラメータ。 $enablePrettyUrlfalse の場合、後者は常に空になります。現在のリクエストが正常に解析できない場合は、false が返されます。

                public function parseRequest($request)
{
    if ($this->enablePrettyUrl) {
        /* @var $rule UrlRule */
        foreach ($this->rules as $rule) {
            $result = $rule->parseRequest($this, $request);
            if (YII_DEBUG) {
                Yii::debug([
                    'rule' => method_exists($rule, '__toString') ? $rule->__toString() : get_class($rule),
                    'match' => $result !== false,
                    'parent' => null,
                ], __METHOD__);
            }
            if ($result !== false) {
                return $result;
            }
        }
        if ($this->enableStrictParsing) {
            return false;
        }
        Yii::debug('No matching URL rules. Using default URL parsing logic.', __METHOD__);
        $suffix = (string) $this->suffix;
        $pathInfo = $request->getPathInfo();
        $normalized = false;
        if ($this->normalizer !== false) {
            $pathInfo = $this->normalizer->normalizePathInfo($pathInfo, $suffix, $normalized);
        }
        if ($suffix !== '' && $pathInfo !== '') {
            $n = strlen($this->suffix);
            if (substr_compare($pathInfo, $this->suffix, -$n, $n) === 0) {
                $pathInfo = substr($pathInfo, 0, -$n);
                if ($pathInfo === '') {
                    // suffix alone is not allowed
                    return false;
                }
            } else {
                // suffix doesn't match
                return false;
            }
        }
        if ($normalized) {
            // pathInfo was changed by normalizer - we need also normalize route
            return $this->normalizer->normalizeRoute([$pathInfo, []]);
        }
        return [$pathInfo, []];
    }
    Yii::debug('Pretty URL not enabled. Using default URL parsing logic.', __METHOD__);
    $route = $request->getQueryParam($this->routeParam, '');
    if (is_array($route)) {
        $route = '';
    }
    return [(string) $route, []];
}

            
setBaseUrl() public メソッド

createUrl() が生成する URL に先頭に付加するベース URL を設定します。

これは主に、$enablePrettyUrltrue で、$showScriptNamefalse の場合に使用されます。

public void setBaseUrl ( $value )
$value string

createUrl() が作成された URL の前に付加するために使用するベース URL。

                public function setBaseUrl($value)
{
    $this->_baseUrl = $value === null ? null : rtrim(Yii::getAlias($value), '/');
}

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

キャッシュキーの一部として $rulesDeclaration を使用して、$builtRules をキャッシュに保存します。

protected 真偽値 setBuiltRulesCache ( $ruleDeclarations, $builtRules )
$ruleDeclarations array

ルール宣言。各配列要素は単一のルール宣言を表します。許容されるルール形式については $rules を参照してください。

$builtRules yii\web\UrlRuleInterface[]

指定されたルール宣言から構築されたルールオブジェクト。

return boolean

値が正常にキャッシュに格納されたかどうか。

                protected function setBuiltRulesCache($ruleDeclarations, $builtRules)
{
    $cache = $this->ensureCache();
    if (!$cache) {
        return false;
    }
    return $cache->set([$this->cacheKey, $this->ruleConfig, $ruleDeclarations], $builtRules);
}

            
setHostInfo() public メソッド

createAbsoluteUrl() が生成する URL に先頭に付加するホスト情報を設定します。

public void setHostInfo ( $value )
$value string

createAbsoluteUrl() で作成されたURLに先頭に追加されるホスト情報(例:"https://www.example.com")。

                public function setHostInfo($value)
{
    $this->_hostInfo = $value === null ? null : rtrim($value, '/');
}

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

ルール (例: yii\web\UrlRule) を内部キャッシュに保存します。

protected void setRuleToCache ( $cacheKey, yii\web\UrlRuleInterface $rule )
$cacheKey
$rule yii\web\UrlRuleInterface

                protected function setRuleToCache($cacheKey, UrlRuleInterface $rule)
{
    $this->_ruleCache[$cacheKey][] = $rule;
}

            
setScriptUrl() public メソッド

createUrl() が生成する URL に先頭に付加するエントリスクリプト URL を設定します。

これは主に、$enablePrettyUrlfalse または $showScriptNametrue の場合に使用されます。

public void setScriptUrl ( $value )
$value string

createUrl() が作成された URL の前に付加するために使用するエントリスクリプト URL。

                public function setScriptUrl($value)
{
    $this->_scriptUrl = $value;
}

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