|
|
|
@ -63,18 +63,18 @@ Yii 2.0 は、1.1 の `CComponent` クラスを二つのクラス、すなわち
|
|
|
|
|
通常は、基本的なデータ構造を表すクラスに対して、このことが当てはまります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
オブジェクトの初期設定 |
|
|
|
|
---------------------- |
|
|
|
|
オブジェクトの構成 |
|
|
|
|
------------------ |
|
|
|
|
|
|
|
|
|
[[yii\base\Object|Object]] クラスはオブジェクトの初期設定のための統一された方法を導入しています。 |
|
|
|
|
[[yii\base\Object|Object]] の全ての派生クラスは、コンストラクタが必要な場合には、インスタンスが正しく初期設定されるように、コンストラクタを以下のようにして宣言しなければなりません。 |
|
|
|
|
[[yii\base\Object|Object]] クラスはオブジェクトを構成するための統一された方法を導入しています。 |
|
|
|
|
[[yii\base\Object|Object]] の全ての派生クラスは、コンストラクタが必要な場合には、インスタンスが正しく構成されるように、コンストラクタを以下のようにして宣言しなければなりません。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
class MyClass extends \yii\base\Object |
|
|
|
|
{ |
|
|
|
|
public function __construct($param1, $param2, $config = []) |
|
|
|
|
{ |
|
|
|
|
// ... 設定情報が適用される前の初期化処理 |
|
|
|
|
// ... 構成情報が適用される前の初期化処理 |
|
|
|
|
|
|
|
|
|
parent::__construct($config); |
|
|
|
|
} |
|
|
|
@ -83,16 +83,16 @@ class MyClass extends \yii\base\Object
|
|
|
|
|
{ |
|
|
|
|
parent::init(); |
|
|
|
|
|
|
|
|
|
// ... 設定情報が適用された後の初期化処理 |
|
|
|
|
// ... 構成情報が適用された後の初期化処理 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
上記のように、コンストラクタは最後のパラメータとして設定情報の配列を取らなければなりません。 |
|
|
|
|
設定情報の配列に含まれる「名前-値」のペアが、コンストラクタの最後でプロパティを初期設定します。 |
|
|
|
|
[[yii\base\Object::init()|init()]] メソッドをオーバーライドして、設定情報が適用された後に行うべき初期化処理を行うことが出来ます。 |
|
|
|
|
上記のように、コンストラクタは最後のパラメータとして構成情報の配列を取らなければなりません。 |
|
|
|
|
構成情報の配列に含まれる「名前-値」のペアが、コンストラクタの最後でプロパティを構成します。 |
|
|
|
|
[[yii\base\Object::init()|init()]] メソッドをオーバーライドして、構成情報が適用された後に行うべき初期化処理を行うことが出来ます。 |
|
|
|
|
|
|
|
|
|
この規約に従うことによって、設定情報の配列を使って新しいオブジェクトを生成して初期設定することが出来るようになります。 |
|
|
|
|
この規約に従うことによって、構成情報の配列を使って新しいオブジェクトを生成して構成することが出来るようになります。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
$object = Yii::createObject([ |
|
|
|
@ -102,7 +102,7 @@ $object = Yii::createObject([
|
|
|
|
|
], [$param1, $param2]); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
設定情報に関する詳細は、[オブジェクトの設定情報](concept-configurations.md) の節で見ることが出来ます。 |
|
|
|
|
構成情報に関する詳細は、[オブジェクトの構成情報](concept-configurations.md) の節で見ることが出来ます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
イベント |
|
|
|
@ -139,7 +139,7 @@ Yii 2.0 は、パスエイリアスの使用を、ファイル/ディレクト
|
|
|
|
|
|
|
|
|
|
パスエイリアスは、また、クラスの名前空間とも密接に関係しています。 |
|
|
|
|
ルートの名前空間に対しては、それぞれ、パスエイリアスを定義することが推奨されます。 |
|
|
|
|
そうすれば、余計な初期設定をしなくても、Yii のクラスオートローダを使うことが出来るようになります。 |
|
|
|
|
そうすれば、余計な構成をしなくても、Yii のクラスオートローダを使うことが出来るようになります。 |
|
|
|
|
例えば、`@yii` が Yii のインストールディレクトリを指しているので、`yii\web\Request` というようなクラスをオートロードすることが出来る訳です。 |
|
|
|
|
サードパーティのライブラリ、例えば Zend フレームワークなどを使う場合にも、そのフレームワークのインストールディレクトリを指す `@Zend` というパスエイリアスを定義することが出来ます。 |
|
|
|
|
一旦そうしてしまえば、その Zend フレームワークのライブラリ内のどんなクラスでも、Yii からオートロードすることが出来るようになります。 |
|
|
|
@ -166,7 +166,7 @@ echo $this->render('_item', ['item' => $item]);
|
|
|
|
|
|
|
|
|
|
PHP を主たるテンプレート言語として使う以外に、Yii 2.0 は人気のある二つのテンプレートエンジン、Smarty と Twig に対する正式なサポートを備えています。 |
|
|
|
|
Prado テンプレートエンジンはもはやサポートされていません。 |
|
|
|
|
これらのテンプレートエンジンを使うためには、[[yii\base\View::$renderers|View::$renderers]] プロパティをセットして、`view` アプリケーションコンポーネントを初期設定する必要があります。 |
|
|
|
|
これらのテンプレートエンジンを使うためには、[[yii\base\View::$renderers|View::$renderers]] プロパティをセットして、`view` アプリケーションコンポーネントを構成する必要があります。 |
|
|
|
|
詳細は [テンプレートエンジン](tutorial-template-engines.md) の節を参照してください。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -266,7 +266,7 @@ ActiveForm::end();
|
|
|
|
|
コントローラやウィジェットのコンテキストの外で表示されるビューに対してすら、適用できます。 |
|
|
|
|
|
|
|
|
|
また、`CThemeManager` コンポーネントはもうありません。 |
|
|
|
|
その代りに、`theme` は `view` アプリケーションコンポーネントの設定可能なプロパティになりました。 |
|
|
|
|
その代りに、`theme` は `view` アプリケーションコンポーネントの構成可能なプロパティになりました。 |
|
|
|
|
|
|
|
|
|
詳細については [テーマ](output-theming.md) の節を参照してください。 |
|
|
|
|
|
|
|
|
@ -304,7 +304,7 @@ Yii 2.0 は [PECL intl PHP モジュール](http://pecl.php.net/package/intl)
|
|
|
|
|
新しいアクションフィルタはビヘイビアによって実装されています。 |
|
|
|
|
新しいカスタムフィルタを定義するためには、[[yii\base\ActionFilter]] を拡張します。 |
|
|
|
|
フィルタを使うためには、そのフィルタクラスをビヘイビアとしてコントローラにアタッチします。 |
|
|
|
|
例えば、[[yii\filters\AccessControl]] を使うためには、コントローラに次のコードを書くことになります: |
|
|
|
|
例えば、[[yii\filters\AccessControl]] を使うためには、コントローラに次のコードを書くことになります。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
public function behaviors() |
|
|
|
|