mirror of
https://github.com/yiisoft/yii2.git
synced 2025-12-19 07:07:58 +08:00
docs/guide-ja/concept - minor fixes [ci skip]
This commit is contained in:
@@ -100,7 +100,7 @@ function ($event) {
|
||||
ビヘイビアのアタッチ <span id="attaching-behaviors"></span>
|
||||
-------------------
|
||||
|
||||
[[yii\base\Component|component]] へのビヘイビアのアタッチは、静的にも動的にも可能です。実際は、前者のほうがより一般的ですが。
|
||||
[[yii\base\Component|コンポーネント]] へのビヘイビアのアタッチは、静的にも動的にも可能です。実際は、前者のほうがより一般的ですが。
|
||||
|
||||
ビヘイビアを静的にアタッチするには、ビヘイビアをアタッチしたいコンポーネントクラスの [[yii\base\Component::behaviors()|behaviors()]] メソッドをオーバーライドします。
|
||||
[[yii\base\Component::behaviors()|behaviors()]] メソッドは、ビヘイビアの [構成](concept-configurations.md) のリストを返さなければなりません。
|
||||
|
||||
@@ -82,7 +82,7 @@ Yii::configure($object, $config);
|
||||
### アプリケーションの構成 <span id="application-configurations"></span>
|
||||
|
||||
[アプリケーション](structure-applications.md) の構成は、おそらく Yii の中で最も複雑な配列のひとつです。
|
||||
それは [[yii\web\Application|application]] クラスが、設定可能なプロパティとイベントを数多く持つためです。
|
||||
それは [[yii\web\Application|アプリケーション]] クラスが、設定可能なプロパティとイベントを数多く持つためです。
|
||||
さらに重要なことは、その [[yii\web\Application::components|components]] プロパティが、アプリケーションに登録されている
|
||||
コンポーネント生成用の構成情報配列を受け取ることができることです。以下は、 [basic application template](start-basic.md)
|
||||
のアプリケーション構成ファイルの概要です。
|
||||
|
||||
@@ -13,12 +13,12 @@ Yiiはイベントをサポートするために、 [[yii\base\Component]] と
|
||||
イベントハンドラ <span id="event-handlers"></span>
|
||||
--------------
|
||||
|
||||
イベントハンドラとは、関連するイベントがトリガされたときに実行される、 [PHP コールバック](http://www.php.net/manual/en/language.types.callable.php)
|
||||
イベントハンドラとは、関連するイベントがトリガされたときに実行される、 [PHP コールバック](http://www.php.net/manual/ja/language.types.callable.php)
|
||||
です。次のコールバックのいずれも使用可能です:
|
||||
|
||||
- 文字列で指定されたグローバル PHP 関数 (括弧を除く) `'trim'` など
|
||||
- オブジェクトとメソッド名文字列の配列で指定された、オブジェクトのメソッド (括弧を除く) `[$object, 'methodName']` など
|
||||
- クラス名文字列とメソッド名文字列の配列で指定された、静的なクラスメソッド `[$class, 'methodName']` など
|
||||
- クラス名文字列とメソッド名文字列の配列で指定された、静的なクラスメソッド (括弧を除く) `['ClassName', 'methodName']` など
|
||||
- 無名関数 `function ($event) { ... }` など
|
||||
|
||||
イベントハンドラのシグネチャはこのようになります:
|
||||
|
||||
@@ -11,7 +11,8 @@ $object->label = trim($label);
|
||||
```
|
||||
|
||||
上記のコードの欠点は、 `label` プロパティを設定するすべてのコードで、`trim()` を呼び出す必要があるということです。もし将来的に、
|
||||
`label` プロパティに、最初の文字を大文字にしなければならない、といった新たな要件が発生したら、 `label` に値を代入するすべてのコードを変更しなければなりません。コードの繰り返しはバグを誘発するので、できれば避けたいところです。
|
||||
`label` プロパティに、最初の文字を大文字にしなければならない、といった新たな要件が発生したら、 `label` に値を代入するすべてのコードを変更しなければなりません。
|
||||
コードの繰り返しはバグを誘発するので、できれば避けたいところです。
|
||||
|
||||
この問題を解決するために、Yii は *getter* メソッドと *setter* メソッドをベースにしたプロパティ定義をサポートする、 [[yii\base\Object]] 基底クラスを提供します。
|
||||
クラスがその機能を必要とするなら、 [[yii\base\Object]] またはその子クラスを継承しましょう。
|
||||
@@ -61,7 +62,7 @@ setter なしの getter で定義されたプロパティは、 *読み取り専
|
||||
[[yii\base\InvalidCallException|InvalidCallException]] が発生します。同様に、getter なしの setter で定義されたプロパティは、
|
||||
*書き込み専用* で、そのようなプロパティを読み取りしようとしても、例外が発生します。書き込み専用のプロパティを持つのは一般的ではありませんが。
|
||||
|
||||
getter と setter で定義されたプロパティには、いくつかの特別なルールと制限があります:
|
||||
getter と setter で定義されたプロパティには、いくつかの特別なルールと制限があります:
|
||||
|
||||
* この種のプロパティでは、名前の *大文字と小文字を区別しません* 。たとえば、 `$object->label` と `$object->Label` は同じです。
|
||||
これは、PHPのメソッド名が大文字と小文字を区別しないためです。
|
||||
|
||||
Reference in New Issue
Block a user