1 フォロワー

クラス yii\base\Module

継承yii\base\Module » yii\di\ServiceLocator » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable
サブクラスyii\base\Applicationyii\console\Applicationyii\web\Application
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/base/Module.php

Module は、モジュールとアプリケーションクラスの基本クラスです。

モジュールは、モデル、ビュー、コントローラーなど、MVC要素を自身で含むサブアプリケーションを表します。

モジュールはサブモジュールで構成される場合があります。

コンポーネントは、モジュール内でグローバルにアクセスできるようにモジュールに登録できます。

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

公開プロパティ

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

プロパティ 説明 定義元
$aliases array 定義するパスエイリアスのリスト。 yii\base\Module
$basePath string モジュールのルートディレクトリ。 yii\base\Module
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$components array コンポーネント定義のリスト、またはロードされたコンポーネントインスタンス(ID => 定義またはインスタンス)。 yii\di\ServiceLocator
$controllerMap array コントローラーIDとコントローラー設定のマッピング。 yii\base\Module
$controllerNamespace string|null コントローラークラスが存在する名前空間。 yii\base\Module
$controllerPath string コントローラークラスを含むディレクトリ。 yii\base\Module
$defaultRoute string このモジュールのデフォルトルート。 yii\base\Module
$id string 同じを持つ他のモジュールの中で、このモジュールを一意に識別するID。 yii\base\Module
$layout string|boolean|null このモジュール内のビューに適用するレイアウト。 yii\base\Module
$layoutPath string レイアウトファイルのルートディレクトリ。 yii\base\Module
$module yii\base\Module|null このモジュールの親モジュール。 yii\base\Module
$modules array モジュール(IDでインデックス付け)。 yii\base\Module
$params array カスタムモジュールパラメーター(名前 => 値)。 yii\base\Module
$uniqueId string モジュールの一意のID。 yii\base\Module
$version string このモジュールのバージョン。 yii\base\Module
$viewPath string ビューファイルのルートディレクトリ。 yii\base\Module

公開メソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトを複製してオブジェクトが作成された後呼び出されます。 yii\base\Component
__construct() コンストラクター。 yii\base\Module
__get() ゲッターマジックメソッド。 yii\di\ServiceLocator
__isset() プロパティの値がnullかどうかを確認します。 yii\di\ServiceLocator
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティをnullに設定します。 yii\base\Component
afterAction() このメソッドは、このモジュール内のアクションが実行された直後に呼び出されます。 yii\base\Module
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeAction() このメソッドは、このモジュール内のアクションが実行される直前に呼び出されます。 yii\base\Module
behaviors() このコンポーネントがビヘイビアとして動作する必要があるビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
clear() ロケーターからコンポーネントを削除します。 yii\di\ServiceLocator
createController() 指定されたルートに基づいてコントローラーインスタンスを作成します。 yii\base\Module
createControllerByID() 指定されたコントローラーIDに基づいてコントローラーを作成します。 yii\base\Module
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
get() 指定されたIDを持つコンポーネントインスタンスを返します。 yii\base\Module
getBasePath() モジュールのルートディレクトリを返します。 yii\base\Module
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getComponents() コンポーネント定義のリスト、またはロードされたコンポーネントインスタンスを返します。 yii\di\ServiceLocator
getControllerPath() $controllerNamespaceに従って、コントローラークラスを含むディレクトリを返します。 yii\base\Module
getInstance() このモジュールクラスの現在要求されているインスタンスを返します。 yii\base\Module
getLayoutPath() このモジュールのレイアウトビューファイルを含むディレクトリを返します。 yii\base\Module
getModule() 指定したIDのチャイルドモジュールを取得します。 yii\base\Module
getModules() このモジュール内のサブモジュールを返します。 yii\base\Module
getUniqueId() 現在のアプリケーション内のすべてのモジュールの中で、このモジュールを一意に識別するIDを返します。 yii\base\Module
getVersion() 現在のモジュールバージョンを返します。 yii\base\Module
getViewPath() このモジュールのビューファイルを含むディレクトリを返します。 yii\base\Module
has() ロケーターが指定されたコンポーネント定義を持っているか、コンポーネントをインスタンス化しているかを示す値を返します。 yii\base\Module
hasEventHandlers() 名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasModule() 指定したIDのチャイルドモジュールが存在するかどうかをチェックします。 yii\base\Module
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() モジュールを初期化します。 yii\base\Module
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
runAction() ルートによって指定されたコントローラーアクションを実行します。 yii\base\Module
set() このロケーターにコンポーネント定義を登録します。 yii\di\ServiceLocator
setAliases() パスエイリアスを定義します。 yii\base\Module
setBasePath() モジュールのルートディレクトリを設定します。 yii\base\Module
setComponents() このロケーターに一連のコンポーネント定義を登録します。 yii\di\ServiceLocator
setControllerPath() コントローラークラスを含むディレクトリを設定します。 yii\base\Module
setInstance() このモジュールクラスの現在要求されているインスタンスを設定します。 yii\base\Module
setLayoutPath() レイアウトファイルを含むディレクトリを設定します。 yii\base\Module
setModule() このモジュールにサブモジュールを追加します。 yii\base\Module
setModules() 現在のモジュールにサブモジュールを登録します。 yii\base\Module
setVersion() 現在のモジュールバージョンを設定します。 yii\base\Module
setViewPath() ビューファイルを含むディレクトリを設定します。 yii\base\Module
trigger() イベントをトリガーします。 yii\base\Component

プロテクトメソッド

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

メソッド 説明 定義元
defaultVersion() デフォルトのモジュールバージョンを返します。 yii\base\Module

イベント

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

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

プロパティの詳細

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

$aliases public property

定義するパスエイリアスのリスト。配列のキーはエイリアス名(@で始まる必要があります)、配列の値は対応するパスまたはエイリアスです。setAliases() を参照してください。

public array $aliases null
$basePath public property

モジュールのルートディレクトリ。

public string $basePath null
$controllerMap public property

コントローラーIDからコントローラー設定へのマッピング。各名前と値のペアは、単一のコントローラーの設定を指定します。コントローラー設定は、文字列または配列のいずれかです。前者の場合、文字列はコントローラーの完全修飾クラス名である必要があります。後者の場合、配列にはclass要素が含まれており、コントローラーの完全修飾クラス名を指定する必要があります。配列内の残りの名前と値のペアは、対応するコントローラーのプロパティの初期化に使用されます。例えば、

[
  'account' => 'app\controllers\UserController',
  'article' => [
     'class' => 'app\controllers\PostController',
     'pageTitle' => 'something new',
  ],
]
public array $controllerMap = []
$controllerNamespace public property

コントローラークラスが存在する名前空間。この名前空間は、コントローラークラス名にプレフィックスを付けることでコントローラークラスをロードするために使用されます。

設定されていない場合、このモジュールの名空間の下にあるcontrollersサブ名前空間を使用します。例えば、このモジュールの名前空間がfoo\barの場合、デフォルトのコントローラー名前空間はfoo\bar\controllersになります。

名前空間の定義方法とクラスのロード方法の詳細については、オートローディングに関するガイドセクションも参照してください。

$controllerPath public property

コントローラークラスを含むディレクトリ。

public string $controllerPath null
$defaultRoute public property

このモジュールのデフォルトルート。デフォルトはdefaultです。ルートは、子モジュールID、コントローラーID、および/またはアクションIDで構成される場合があります。たとえば、helppost/createadmin/post/createなどです。アクションIDが指定されていない場合、yii\base\Controller::$defaultActionで指定されたデフォルト値が使用されます。

public string $defaultRoute 'default'
$id public property

同じを持つ他のモジュールの中で、このモジュールを一意に識別するID。

public string $id null
$layout public property

このモジュール内のビューに適用するレイアウト。$layoutPathを基準としたビュー名を指します。これが設定されていない場合、親モジュールのレイアウト値が使用されます。これがfalseの場合、このモジュール内ではレイアウトが無効になります。

public string|boolean|null $layout null
$layoutPath public プロパティ

レイアウトファイルのルートディレクトリです。「$viewPath/layouts」がデフォルト値です。

public string $layoutPath null
$module public プロパティ

このモジュールの親モジュールです。親モジュールがない場合はnullです。

$modules public プロパティ

モジュール(IDでインデックス付け)。

public array $modules null
$params public プロパティ

カスタムモジュールパラメーター(名前 => 値)。

public array $params = []
$uniqueId public プロパティ

モジュールの一意のID。

public string $uniqueId null
$version public プロパティ

このモジュールのバージョンです。このプロパティの型は、ゲッターとセッターで異なります。getVersion()setVersion()を参照してください。

public string $version null
$viewPath public プロパティ

ビューファイルのルートディレクトリです。「$basePath/views」がデフォルト値です。

public string $viewPath 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 メソッド

コンストラクター。

public void __construct ( $id, $parent null, $config = [] )
$id string

このモジュールのIDです。

$parent yii\base\Module|null

親モジュール(存在する場合)。

$config array

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

                public function __construct($id, $parent = null, $config = [])
{
    $this->id = $id;
    $this->module = $parent;
    parent::__construct($config);
}

            
__get() public メソッド

定義場所: yii\di\ServiceLocator::__get()

ゲッターマジックメソッド。

このメソッドは、プロパティの読み取りのようにコンポーネントへのアクセスをサポートするためにオーバーライドされています。

public mixed __get ( $name )
$name string

コンポーネントまたはプロパティ名

戻り値 mixed

名前付きプロパティの値

                public function __get($name)
{
    if ($this->has($name)) {
        return $this->get($name);
    }
    return parent::__get($name);
}

            
__isset() public メソッド

定義場所: yii\di\ServiceLocator::__isset()

プロパティの値がnullかどうかを確認します。

このメソッドは、名前付きコンポーネントがロードされているかどうかをチェックすることで、親の実装をオーバーライドします。

public boolean __isset ( $name )
$name string

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

戻り値 boolean

プロパティの値がnullかどうか

                public function __isset($name)
{
    if ($this->has($name)) {
        return true;
    }
    return parent::__isset($name);
}

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

            
afterAction() publicメソッド

このメソッドは、このモジュール内のアクションが実行された直後に呼び出されます。

このメソッドは、EVENT_AFTER_ACTION イベントをトリガーします。メソッドの戻り値は、アクションの戻り値として使用されます。

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

public function afterAction($action, $result)
{
    $result = parent::afterAction($action, $result);
    // your custom code here
    return $result;
}
public mixed afterAction ( $action, $result )
$action yii\base\Action

実行されたばかりのアクション。

$result mixed

アクションの戻り値。

戻り値 mixed

処理されたアクションの結果。

                public function afterAction($action, $result)
{
    $event = new ActionEvent($action);
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_ACTION, $event);
    return $event->result;
}

            
attachBehavior() publicメソッド

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

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

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

関連情報: detachBehavior().

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

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの設定。以下のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • ビヘイビアオブジェクトを作成するためにYii::createObject() に渡されるオブジェクト設定配列。
戻り値 yii\base\Behavior

ビヘイビアオブジェクト

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

            
attachBehaviors() publicメソッド

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

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

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

関連情報: attachBehavior().

public void attachBehaviors ( $behaviors )
$behaviors array

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

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

            
beforeAction() publicメソッド

このメソッドは、このモジュール内のアクションが実行される直前に呼び出されます。

このメソッドは、EVENT_BEFORE_ACTION イベントをトリガーします。メソッドの戻り値によって、アクションが実行を継続するかどうかが決まります。

アクションを実行しない場合、必要な出力を提供するか、リクエストをリダイレクトすることで、`beforeAction`コード内でリクエストを処理する必要があります。 そうしないと、レスポンスは空になります。

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

public function beforeAction($action)
{
    if (!parent::beforeAction($action)) {
        return false;
    }

    // your custom code here

    return true; // or false to not run the action
}
public boolean beforeAction ( $action )
$action yii\base\Action

実行されるアクション。

戻り値 boolean

アクションが実行を継続するかどうか。

                public function beforeAction($action)
{
    $event = new ActionEvent($action);
    $this->trigger(self::EVENT_BEFORE_ACTION, $event);
    return $event->isValid;
}

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

定義場所: yii\di\ServiceLocator::clear()

ロケーターからコンポーネントを削除します。

public void clear ( $id )
$id string

コンポーネントID

                public function clear($id)
{
    unset($this->_definitions[$id], $this->_components[$id]);
}

            
createController() publicメソッド

指定されたルートに基づいてコントローラーインスタンスを作成します。

ルートは、このモジュールを基準とした相対パスである必要があります。このメソッドは、指定されたルートを解決するために以下のアルゴリズムを実装しています。

  1. ルートが空の場合、$defaultRouteを使用します。
  2. ルートの最初のセグメントが$controllerMapに見つかった場合、$controllerMapにある対応する設定に基づいてコントローラを作成します。
  3. ルートの最初のセグメントが、$modulesで宣言されている有効なモジュールIDの場合、モジュールのcreateController()をルートの残りの部分と共に呼び出します。
  4. 指定されたルートはabc/def/xyzの形式です。コントローラの名前空間内で、abc\DefControllerまたはabc\def\XyzControllerクラスを試します。

上記のいずれかの手順でコントローラが解決された場合、それはリクエストされたアクションIDと共に返されます。そうでない場合、falseが返されます。

public array|boolean createController ( $route )
$route string

モジュール、コントローラ、アクションIDからなるルート。

戻り値 array|boolean

コントローラが正常に作成された場合、リクエストされたアクションIDと共に返されます。そうでない場合、falseが返されます。

例外 yii\base\InvalidConfigException

コントローラクラスとそのファイルが一致しない場合。

                public function createController($route)
{
    if ($route === '') {
        $route = $this->defaultRoute;
    }
    // double slashes or leading/ending slashes may cause substr problem
    $route = trim($route, '/');
    if (strpos($route, '//') !== false) {
        return false;
    }
    if (strpos($route, '/') !== false) {
        list($id, $route) = explode('/', $route, 2);
    } else {
        $id = $route;
        $route = '';
    }
    // module and controller map take precedence
    if (isset($this->controllerMap[$id])) {
        $controller = Yii::createObject($this->controllerMap[$id], [$id, $this]);
        return [$controller, $route];
    }
    $module = $this->getModule($id);
    if ($module !== null) {
        return $module->createController($route);
    }
    if (($pos = strrpos($route, '/')) !== false) {
        $id .= '/' . substr($route, 0, $pos);
        $route = substr($route, $pos + 1);
    }
    $controller = $this->createControllerByID($id);
    if ($controller === null && $route !== '') {
        $controller = $this->createControllerByID($id . '/' . $route);
        $route = '';
    }
    return $controller === null ? false : [$controller, $route];
}

            
createControllerByID() publicメソッド

指定されたコントローラーIDに基づいてコントローラーを作成します。

コントローラIDは、このモジュールを基準とした相対パスです。コントローラクラスは、$controllerNamespaceの下に名前空間化されている必要があります。

このメソッドは、$modulesまたは$controllerMapをチェックしません。

public yii\base\Controller|null createControllerByID ( $id )
$id string

コントローラID。

戻り値 yii\base\Controller|null

新しく作成されたコントローラインスタンス、またはコントローラIDが無効な場合はnull

例外 yii\base\InvalidConfigException

コントローラクラスとファイル名が一致しない場合。この例外はデバッグモードでのみスローされます。

                public function createControllerByID($id)
{
    $pos = strrpos($id, '/');
    if ($pos === false) {
        $prefix = '';
        $className = $id;
    } else {
        $prefix = substr($id, 0, $pos + 1);
        $className = substr($id, $pos + 1);
    }
    if ($this->isIncorrectClassNameOrPrefix($className, $prefix)) {
        return null;
    }
    $className = preg_replace_callback('%-([a-z0-9_])%i', function ($matches) {
            return ucfirst($matches[1]);
    }, ucfirst($className)) . 'Controller';
    $className = ltrim($this->controllerNamespace . '\\' . str_replace('/', '\\', $prefix) . $className, '\\');
    if (strpos($className, '-') !== false || !class_exists($className)) {
        return null;
    }
    if (is_subclass_of($className, 'yii\base\Controller')) {
        $controller = Yii::createObject($className, [$id, $this]);
        return get_class($controller) === $className ? $controller : null;
    } elseif (YII_DEBUG) {
        throw new InvalidConfigException('Controller class must extend from \\yii\\base\\Controller.');
    }
    return null;
}

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

デフォルトのモジュールバージョンを返します。

子クラスは、より具体的なバージョン検出を提供するためにこのメソッドをオーバーライドできます。

protected string defaultVersion ( )
戻り値 string

このモジュールのバージョン。

                protected function defaultVersion()
{
    if ($this->module === null) {
        return '1.0';
    }
    return $this->module->getVersion();
}

            
detachBehavior() publicメソッド

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

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

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

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

ビヘイビアの名前。

戻り値 yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合はNull。

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

            
detachBehaviors() publicメソッド

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

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

public void detachBehaviors ( )

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

            
ensureBehaviors() publicメソッド

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

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

public void ensureBehaviors ( )

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

            
get() publicメソッド

指定されたIDを持つコンポーネントインスタンスを返します。

バージョン2.0.13以降、モジュールにコンポーネントが定義されていない場合、親モジュールで検索されます。親モジュールはアプリケーションの場合があります。

public object|null get ( $id, $throwException true )
$id string

コンポーネントID(例:db)。

$throwException boolean

$idが事前にロケーターに登録されていない場合に例外をスローするかどうか。

戻り値 object|null

指定されたIDのコンポーネント。$throwExceptionがfalseで、$idが事前に登録されていない場合は、nullが返されます。

例外 yii\base\InvalidConfigException

$idが非存在のコンポーネントIDを参照する場合

                public function get($id, $throwException = true)
{
    if (!isset($this->module)) {
        return parent::get($id, $throwException);
    }
    $component = parent::get($id, false);
    if ($component === null) {
        $component = $this->module->get($id, $throwException);
    }
    return $component;
}

            
getBasePath() publicメソッド

モジュールのルートディレクトリを返します。

デフォルトでは、モジュールクラスファイルを含むディレクトリです。

public string getBasePath ( )
戻り値 string

モジュールのルートディレクトリ。

                public function getBasePath()
{
    if ($this->_basePath === null) {
        $class = new \ReflectionClass($this);
        $this->_basePath = dirname($class->getFileName());
    }
    return $this->_basePath;
}

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

            
getComponents() publicメソッド

定義先: yii\di\ServiceLocator::getComponents()

コンポーネント定義のリスト、またはロードされたコンポーネントインスタンスを返します。

public array getComponents ( $returnDefinitions true )
$returnDefinitions boolean

ロード済みのコンポーネントインスタンスではなく、コンポーネント定義を返すかどうか。

戻り値 array

コンポーネント定義のリスト、またはロードされたコンポーネントインスタンス(ID => 定義またはインスタンス)。

                public function getComponents($returnDefinitions = true)
{
    return $returnDefinitions ? $this->_definitions : $this->_components;
}

            
getControllerPath() publicメソッド

$controllerNamespaceに従って、コントローラークラスを含むディレクトリを返します。

このメソッドが値を返すためには、$controllerNamespaceのルート名前空間のエイリアスを定義する必要があります。

public string getControllerPath ( )
戻り値 string

コントローラークラスを含むディレクトリ。

例外 yii\base\InvalidArgumentException

$controllerNamespaceのルート名前空間に対してエイリアスが定義されていない場合。

                public function getControllerPath()
{
    if ($this->_controllerPath === null) {
        $this->_controllerPath = Yii::getAlias('@' . str_replace('\\', '/', $this->controllerNamespace));
    }
    return $this->_controllerPath;
}

            
getInstance() public staticメソッド

このモジュールクラスの現在要求されているインスタンスを返します。

モジュールクラスが現在要求されていない場合、nullが返されます。このメソッドは、モジュール内のどこからでもモジュールインスタンスにアクセスできるように提供されています。

public static static|null getInstance ( )
戻り値 yii\base\Module|null

このモジュールクラスの現在要求されているインスタンス、またはモジュールクラスが要求されていない場合はnull

                public static function getInstance()
{
    $class = get_called_class();
    return isset(Yii::$app->loadedModules[$class]) ? Yii::$app->loadedModules[$class] : null;
}

            
getLayoutPath() publicメソッド

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

public string getLayoutPath ( )
戻り値 string

レイアウトファイルのルートディレクトリです。「$viewPath/layouts」がデフォルト値です。

                public function getLayoutPath()
{
    if ($this->_layoutPath === null) {
        $this->_layoutPath = $this->getViewPath() . DIRECTORY_SEPARATOR . 'layouts';
    }
    return $this->_layoutPath;
}

            
getModule() publicメソッド

指定したIDのチャイルドモジュールを取得します。

このメソッドは、子モジュールと孫モジュールの両方の取得をサポートしています。

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

public yii\base\Module|null getModule ( $id, $load true )
$id string

モジュールID(大文字と小文字が区別されます)。孫モジュールを取得するには、このモジュールを基準としたIDパスを使用します(例:admin/content)。

$load boolean

モジュールがまだロードされていない場合に、モジュールをロードするかどうか。

戻り値 yii\base\Module|null

モジュールインスタンス、モジュールが存在しない場合はnull

                public function getModule($id, $load = true)
{
    if (($pos = strpos($id, '/')) !== false) {
        // sub-module
        $module = $this->getModule(substr($id, 0, $pos));
        return $module === null ? null : $module->getModule(substr($id, $pos + 1), $load);
    }
    if (isset($this->_modules[$id])) {
        if ($this->_modules[$id] instanceof self) {
            return $this->_modules[$id];
        } elseif ($load) {
            Yii::debug("Loading module: $id", __METHOD__);
            /* @var $module Module */
            $module = Yii::createObject($this->_modules[$id], [$id, $this]);
            $module::setInstance($module);
            return $this->_modules[$id] = $module;
        }
    }
    return null;
}

            
getModules() publicメソッド

このモジュール内のサブモジュールを返します。

public array getModules ( $loadedOnly false )
$loadedOnly boolean

ロード済みのサブモジュールのみを返すかどうか。これがfalseに設定されている場合、ロードされているかどうかに関係なく、このモジュールに登録されているすべてのサブモジュールが返されます。ロード済みのモジュールはオブジェクトとして、ロードされていないモジュールは設定配列として返されます。

戻り値 array

モジュール(IDでインデックス付け)。

                public function getModules($loadedOnly = false)
{
    if ($loadedOnly) {
        $modules = [];
        foreach ($this->_modules as $module) {
            if ($module instanceof self) {
                $modules[] = $module;
            }
        }
        return $modules;
    }
    return $this->_modules;
}

            
getUniqueId() publicメソッド

現在のアプリケーション内のすべてのモジュールの中で、このモジュールを一意に識別するIDを返します。

モジュールがアプリケーションの場合、空文字列が返されます。

public string getUniqueId ( )
戻り値 string

モジュールの一意のID。

                public function getUniqueId()
{
    return $this->module ? ltrim($this->module->getUniqueId() . '/' . $this->id, '/') : $this->id;
}

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

現在のモジュールバージョンを返します。

バージョンが明示的に設定されていない場合、defaultVersion()メソッドを使用して値を決定します。

public string getVersion ( )
戻り値 string

このモジュールのバージョン。

                public function getVersion()
{
    if ($this->_version === null) {
        $this->_version = $this->defaultVersion();
    } else {
        if (!is_scalar($this->_version)) {
            $this->_version = call_user_func($this->_version, $this);
        }
    }
    return $this->_version;
}

            
getViewPath() publicメソッド

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

public string getViewPath ( )
戻り値 string

ビューファイルのルートディレクトリです。「$basePath/views」がデフォルト値です。

                public function getViewPath()
{
    if ($this->_viewPath === null) {
        $this->_viewPath = $this->getBasePath() . DIRECTORY_SEPARATOR . 'views';
    }
    return $this->_viewPath;
}

            
has() publicメソッド

ロケーターが指定されたコンポーネント定義を持っているか、コンポーネントをインスタンス化しているかを示す値を返します。

バージョン2.0.13以降、モジュールにコンポーネントが定義されていない場合、親モジュールで検索されます。親モジュールはアプリケーションの場合があります。

このメソッドは、$checkInstanceの値に応じて異なる結果を返す可能性があります。

  • $checkInstanceがfalseの場合(デフォルト)、このメソッドはロケーターが指定されたコンポーネント定義を持っているかどうかを示す値を返します。
  • $checkInstanceがtrueの場合、このメソッドはロケーターが指定されたコンポーネントをインスタンス化しているかどうかを示す値を返します。
public boolean has ( $id, $checkInstance false )
$id string

コンポーネントID(例:db)。

$checkInstance boolean

コンポーネントが共有され、インスタンス化されているかどうかを確認する必要があるかどうか。

戻り値 boolean

ロケーターが指定されたコンポーネント定義を持っているか、コンポーネントをインスタンス化しているかどうか。

                public function has($id, $checkInstance = false)
{
    return parent::has($id, $checkInstance) || (isset($this->module) && $this->module->has($id, $checkInstance));
}

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

            
hasModule() publicメソッド

指定したIDのチャイルドモジュールが存在するかどうかをチェックします。

このメソッドは、子モジュールと孫モジュールの両方の存在を確認できます。

public boolean hasModule ( $id )
$id string

モジュールID。孫モジュールの場合、このモジュールを基準としたIDパスを使用します(例:admin/content)。

戻り値 boolean

指定されたモジュールが存在するかどうか。ロード済みのモジュールとロードされていないモジュールの両方が考慮されます。

                public function hasModule($id)
{
    if (($pos = strpos($id, '/')) !== false) {
        // sub-module
        $module = $this->getModule(substr($id, 0, $pos));
        return $module === null ? false : $module->hasModule(substr($id, $pos + 1));
    }
    return isset($this->_modules[$id]);
}

            
hasProperty() publicメソッド

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

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

プロパティは、以下の場合に定義されています。

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

参照

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 boolean

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

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

            
init() publicメソッド

モジュールを初期化します。

このメソッドは、モジュールが作成され、構成で指定されたプロパティ値で初期化された後に呼び出されます。デフォルトの実装では、$controllerNamespaceが設定されていない場合に初期化されます。

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

public void init ( )

                public function init()
{
    if ($this->controllerNamespace === null) {
        $class = get_class($this);
        if (($pos = strrpos($class, '\\')) !== false) {
            $this->controllerNamespace = substr($class, 0, $pos) . '\\controllers';
        }
    }
}

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

            
runAction() publicメソッド

ルートによって指定されたコントローラーアクションを実行します。

このメソッドは、指定されたルートを解析し、対応する子モジュール、コントローラー、アクションのインスタンスを作成します。yii\base\Controller::runAction() を呼び出して、指定されたパラメーターでアクションを実行します。ルートが空の場合、このメソッドは $defaultRoute を使用します。

public mixed runAction ( $route, $params = [] )
$route string

アクションを指定するルート。

$params array

アクションに渡されるパラメーター。

戻り値 mixed

アクションの結果。

例外 yii\base\InvalidRouteException

要求されたルートがアクションに正常に解決できない場合。

                public function runAction($route, $params = [])
{
    $parts = $this->createController($route);
    if (is_array($parts)) {
        /* @var $controller Controller */
        list($controller, $actionID) = $parts;
        $oldController = Yii::$app->controller;
        Yii::$app->controller = $controller;
        $result = $controller->runAction($actionID, $params);
        if ($oldController !== null) {
            Yii::$app->controller = $oldController;
        }
        return $result;
    }
    $id = $this->getUniqueId();
    throw new InvalidRouteException('Unable to resolve the request "' . ($id === '' ? $route : $id . '/' . $route) . '".');
}

            
set() publicメソッド

定義されている場所: yii\di\ServiceLocator::set()

このロケーターにコンポーネント定義を登録します。

例えば、

// a class name
$locator->set('cache', 'yii\caching\FileCache');

// a configuration array
$locator->set('db', [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
]);

// an anonymous function
$locator->set('cache', function ($params) {
    return new \yii\caching\FileCache;
});

// an instance
$locator->set('cache', new \yii\caching\FileCache);

同じIDを持つコンポーネント定義が既に存在する場合、上書きされます。

public void set ( $id, $definition )
$id string

コンポーネントID(例:db)。

$definition mixed

このロケーターに登録されるコンポーネント定義。以下のいずれかになります。

  • クラス名
  • 設定配列: この配列には、get() が呼び出されたときに、新しく作成されたオブジェクトのプロパティ値の初期化に使用される名前と値のペアが含まれています。「class」要素は必須であり、作成されるオブジェクトのクラスを表します。
  • PHPのcallable: 無名関数、またはクラスメソッドを表す配列(例: `['Foo', 'bar']`)。このcallableは、get() によって呼び出され、指定されたコンポーネントIDに関連付けられたオブジェクトを返します。
  • オブジェクト: get() が呼び出されると、このオブジェクトが返されます。
例外 yii\base\InvalidConfigException

定義が無効な設定配列の場合

                public function set($id, $definition)
{
    unset($this->_components[$id]);
    if ($definition === null) {
        unset($this->_definitions[$id]);
        return;
    }
    if (is_object($definition) || is_callable($definition, true)) {
        // an object, a class name, or a PHP callable
        $this->_definitions[$id] = $definition;
    } elseif (is_array($definition)) {
        // a configuration array
        if (isset($definition['__class'])) {
            $this->_definitions[$id] = $definition;
            $this->_definitions[$id]['class'] = $definition['__class'];
            unset($this->_definitions[$id]['__class']);
        } elseif (isset($definition['class'])) {
            $this->_definitions[$id] = $definition;
        } else {
            throw new InvalidConfigException("The configuration for the \"$id\" component must contain a \"class\" element.");
        }
    } else {
        throw new InvalidConfigException("Unexpected configuration type for the \"$id\" component: " . gettype($definition));
    }
}

            
setAliases() publicメソッド

パスエイリアスを定義します。

このメソッドは、Yii::setAlias() を呼び出してパスエイリアスを登録します。このメソッドは、モジュールの設定時にパスエイリアスを定義できるように提供されています。

public void setAliases ( $aliases )
$aliases array

定義するパスエイリアスのリスト。配列のキーはエイリアス名(`@`で始まる必要があります)、配列の値は対応するパスまたはエイリアスです。例えば、

[
    '@models' => '@app/models', // an existing alias
    '@backend' => __DIR__ . '/../backend',  // a directory
]

                public function setAliases($aliases)
{
    foreach ($aliases as $name => $alias) {
        Yii::setAlias($name, $alias);
    }
}

            
setBasePath() publicメソッド

モジュールのルートディレクトリを設定します。

このメソッドは、コンストラクターの開始時のみ呼び出すことができます。

public void setBasePath ( $path )
$path string

モジュールのルートディレクトリ。ディレクトリ名またはパスエイリアスのいずれかになります。

例外 yii\base\InvalidArgumentException

ディレクトリが存在しない場合。

                public function setBasePath($path)
{
    $path = Yii::getAlias($path);
    $p = strncmp($path, 'phar://', 7) === 0 ? $path : realpath($path);
    if (is_string($p) && is_dir($p)) {
        $this->_basePath = $p;
    } else {
        throw new InvalidArgumentException("The directory does not exist: $path");
    }
}

            
setComponents() publicメソッド

定義されている場所: yii\di\ServiceLocator::setComponents()

このロケーターに一連のコンポーネント定義を登録します。

これはset() のバルクバージョンです。パラメーターは、キーがコンポーネントID、値が対応するコンポーネント定義である配列である必要があります。

コンポーネントIDと定義の指定方法の詳細については、set() を参照してください。

同じIDを持つコンポーネント定義が既に存在する場合、上書きされます。

2つのコンポーネント定義を登録する例を以下に示します。

[
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'sqlite:path/to/file.db',
    ],
    'cache' => [
        'class' => 'yii\caching\DbCache',
        'db' => 'db',
    ],
]
public void setComponents ( $components )
$components array

コンポーネント定義またはインスタンス

                public function setComponents($components)
{
    foreach ($components as $id => $component) {
        $this->set($id, $component);
    }
}

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

コントローラークラスを含むディレクトリを設定します。

public void setControllerPath ( $path )
$path string

コントローラークラスを含むルートディレクトリ。

例外 yii\base\InvalidArgumentException

ディレクトリが無効な場合。

                public function setControllerPath($path)
{
    $this->_controllerPath = Yii::getAlias($path);
}

            
setInstance() public staticメソッド

このモジュールクラスの現在要求されているインスタンスを設定します。

public static void setInstance ( $instance )
$instance yii\base\Module|null

このモジュールクラスの現在要求されているインスタンス。`null` の場合、呼び出し側のクラスのインスタンス(存在する場合)が削除されます。

                public static function setInstance($instance)
{
    if ($instance === null) {
        unset(Yii::$app->loadedModules[get_called_class()]);
    } else {
        Yii::$app->loadedModules[get_class($instance)] = $instance;
    }
}

            
setLayoutPath() publicメソッド

レイアウトファイルを含むディレクトリを設定します。

public void setLayoutPath ( $path )
$path string

レイアウトファイルのルートディレクトリまたはパスエイリアス

例外 yii\base\InvalidArgumentException

ディレクトリが無効な場合

                public function setLayoutPath($path)
{
    $this->_layoutPath = Yii::getAlias($path);
}

            
setModule() publicメソッド

このモジュールにサブモジュールを追加します。

public void setModule ( $id, $module )
$id string

モジュールID。

$module yii\base\Module|配列|null

このモジュールに追加するサブモジュール。以下のいずれかになります。

  • yii\base\Module オブジェクト
  • 設定配列: getModule() が最初に呼び出されると、配列を使用してサブモジュールがインスタンス化されます。
  • null: 名前付きサブモジュールがこのモジュールから削除されます。

                public function setModule($id, $module)
{
    if ($module === null) {
        unset($this->_modules[$id]);
    } else {
        $this->_modules[$id] = $module;
        if ($module instanceof self) {
            $module->module = $this;
        }
    }
}

            
setModules() publicメソッド

現在のモジュールにサブモジュールを登録します。

各サブモジュールは、名前と値のペアとして指定する必要があります。ここで、名前はモジュールのIDを表し、値はモジュール、またはモジュールを作成するために使用できる設定配列を表します。後者の場合、Yii::createObject() を使用してモジュールが作成されます。

新しいサブモジュールが既存のサブモジュールと同じIDを持つ場合、既存のサブモジュールは静かに上書きされます。

2つのサブモジュールを登録する例を以下に示します。

[
    'comment' => [
        'class' => 'app\modules\comment\CommentModule',
        'db' => 'db',
    ],
    'booking' => ['class' => 'app\modules\booking\BookingModule'],
]
public void setModules ( $modules )
$modules array

モジュール(ID => モジュール設定またはインスタンス)。

                public function setModules($modules)
{
    foreach ($modules as $id => $module) {
        $this->_modules[$id] = $module;
        if ($module instanceof self) {
            $module->module = $this;
        }
    }
}

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

現在のモジュールバージョンを設定します。

public void setVersion ( $version )
$version string|callable|null

このモジュールのバージョン。バージョンはPHPのコールバックとして指定できます。コールバックはモジュールインスタンスを引数として受け取り、実際のバージョンを返す必要があります。例:

function (Module $module) {
    //return string
}

                public function setVersion($version)
{
    $this->_version = $version;
}

            
setViewPath() publicメソッド

ビューファイルを含むディレクトリを設定します。

public void setViewPath ( $path )
$path string

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

例外 yii\base\InvalidArgumentException

ディレクトリが無効な場合。

                public function setViewPath($path)
{
    $this->_viewPath = Yii::getAlias($path);
}

            
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_AFTER_ACTION yii\base\ActionEvent型のイベント

コントローラーアクションの実行後に発生するイベント。

EVENT_BEFORE_ACTION yii\base\ActionEvent型のイベント

コントローラの処理実行前に発生するイベント。 yii\base\ActionEvent::$isValidfalseに設定して、アクションの実行をキャンセルできます。