|
|
|
@ -33,7 +33,7 @@ forum/
|
|
|
|
|
モジュールがアクセスされたとき、対応するモジュールクラスの単一のインスタンスが作成されます。 |
|
|
|
|
[アプリケーションのインスタンス](structure-applications.md) と同じように、モジュールのインスタンスは、モジュール内のコードがデータとコンポーネントを共有するために使用されます。 |
|
|
|
|
|
|
|
|
|
次のコードは、モジュールクラスがどのように見えるかを示す例です。 |
|
|
|
|
次のコードは、モジュールクラスがどのようなものかを示す例です。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
namespace app\modules\forum; |
|
|
|
@ -50,8 +50,7 @@ class Module extends \yii\base\Module
|
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
`init` メソッドがモジュールのプロパティを初期化するためのコードをたくさん含む場合は、 |
|
|
|
|
それを [構成情報](concept-configurations.md) の形で保存し、`init()` の中で次のコードを使って読み出すことも可能です。 |
|
|
|
|
`init` メソッドがモジュールのプロパティを初期化するためのコードをたくさん含む場合は、それを [構成情報](concept-configurations.md) の形で保存し、`init()` の中で次のコードを使って読み出すことも可能です。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
public function init() |
|
|
|
@ -150,11 +149,11 @@ class PostController extends Controller
|
|
|
|
|
$module = MyModuleClass::getInstance(); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
ここで `MyModuleClass` は、関心を持っているモジュールクラスの名前を指します。 |
|
|
|
|
ここで `MyModuleClass` は、当該モジュールクラスの名前を指すものです。 |
|
|
|
|
`getInstance()` メソッドは、現在リクエストされているモジュールクラスのインスタンスを返します。 |
|
|
|
|
モジュールがリクエストされていない場合は、このメソッドは null を返します。 |
|
|
|
|
モジュールクラスの新しいインスタンスを手動で作成しようとしてはいけないことに注意してください。 |
|
|
|
|
そのインスタンスは、リクエストに対するレスポンスとして Yii によって作成されたインスタンスとは別のものになります。 |
|
|
|
|
手動で作成したインスタンスは、リクエストに対するレスポンスとして Yii によって作成されたインスタンスとは別のものになります。 |
|
|
|
|
|
|
|
|
|
> Info|情報: モジュールを開発するとき、モジュールが固定の ID を使うと仮定してはいけません。 |
|
|
|
|
なぜなら、モジュールは、アプリケーションや他のモジュールの中で使うときに、任意の ID と結び付けることが出来るからです。 |
|
|
|
@ -219,7 +218,7 @@ class Module extends \yii\base\Module
|
|
|
|
|
|
|
|
|
|
$this->modules = [ |
|
|
|
|
'admin' => [ |
|
|
|
|
// ここはもっと短い名前空間の使用を考慮すべきだ! |
|
|
|
|
// ここはもっと短い名前空間の使用を考慮すべきです |
|
|
|
|
'class' => 'app\modules\forum\modules\admin\Module', |
|
|
|
|
], |
|
|
|
|
]; |
|
|
|
|