diff --git a/docs/guide-ja/concept-behaviors.md b/docs/guide-ja/concept-behaviors.md index 7a1d0d2a4b..d60aa68380 100644 --- a/docs/guide-ja/concept-behaviors.md +++ b/docs/guide-ja/concept-behaviors.md @@ -51,6 +51,9 @@ class MyBehavior extends Behavior > Tip: ビヘイビア内から、[[yii\base\Behavior::owner]] プロパティを介して、ビヘイビアをアタッチしたコンポーネントにアクセスすることができます。 +> Note: ビヘイビアの [[yii\base\Behavior::__get()]] および/または [[yii\base\Behavior::__set()]] メソッドをオーバーライドする場合は、同時に [[yii\base\Behavior::canGetProperty()]] および/または [[yii\base\Behavior::canSetProperty()]] もオーバーライドする必要があります。 + + コンポーネントイベントのハンドリング ------------------ diff --git a/docs/guide-ja/concept-properties.md b/docs/guide-ja/concept-properties.md index 3044912cd3..2c46d59067 100644 --- a/docs/guide-ja/concept-properties.md +++ b/docs/guide-ja/concept-properties.md @@ -69,9 +69,11 @@ getter と setter で定義されたプロパティには、いくつかの特 * この種のプロパティの名前と、クラスのメンバ変数の名前とが同じである場合、後者が優先されます。 たとえば、上記の `Foo` クラスがもしメンバ変数 `label` を持っているとすると、`$object->label = 'abc'` という代入は *メンバ変数の* `label` に作用することになり、その行で `setLabel()` setter メソッドは呼び出されなくなります。 -* これらのプロパティは可視性をサポートしていません。プロパティが public、protected、private であるかどうかで、 - getter または setter メソッドの定義に違いは生じません。 -* プロパティは、 *静的でない* getter および setter でしか定義できません。静的メソッドは同じようには扱われません。 +* これらのプロパティは可視性をサポートしていません。プロパティが public、protected、private であるかどうかを、 + getter または setter メソッドの定義によって決めることは出来ません。 +* プロパティは、 *静的でない* getter および setter によってのみ定義することが出来ます。静的なメソッドは同様には扱われません。 +* 通常の `property_exists()` の呼び出しでは、マジック・プロパティが存在するかどうかを知ることは出来ません。 + それぞれ、`canGetProperty()` または `canSetProperty()` を呼び出さなければなりません。 このガイドの冒頭で説明した問題に戻ると、 `label` に値が代入されているあらゆる箇所で `trim()` を呼ぶのではなく、もう `setLabel()` という setter の内部だけで `trim()` を呼べば済むのです。 さらに、新しい要求でラベルの先頭を大文字にする必要が発生しても、他のいっさいのコードに触れることなく、すぐに `setLabel()` メソッドを変更することができます。一箇所の変更は、すべての `label` への代入に普遍的に作用します。 diff --git a/docs/guide-ja/output-data-widgets.md b/docs/guide-ja/output-data-widgets.md index d8d36c1f4d..63a1a0feb5 100644 --- a/docs/guide-ja/output-data-widgets.md +++ b/docs/guide-ja/output-data-widgets.md @@ -266,6 +266,25 @@ echo GridView::widget([ - [[yii\grid\ActionColumn::urlCreator|urlCreator]] は、指定されたモデルの情報を使って、ボタンの URL を生成するコールバックです。 コールバックのシグニチャは [[yii\grid\ActionColumn::createUrl()]] のそれと同じでなければなりません。 このプロパティが設定されていないときは、ボタンの URL は [[yii\grid\ActionColumn::createUrl()]] を使って生成されます。 +- [[yii\grid\ActionColumn::visibleButtons|visibleButtons]] は、各ボタンの可視性の条件を定義する配列です。 + 配列のキーはボタンの名前 (波括弧を除く) であり、値は真偽値 true/false または無名関数です。 + ボタンの名前がこの配列の中で指定されていない場合は、デフォルトで、ボタンが表示されます。 + コールバックは次のシグニチャを使わなければなりません。 + + ```php + function ($model, $key, $index) { + return $model->status === 'editable'; + } + ``` + + または、真偽値を渡すことも出来ます。 + + ```php + [ + 'update' => \Yii::$app->user->can('update') + ] + ``` + #### チェックボックスカラム diff --git a/docs/internals-ja/core-code-style.md b/docs/internals-ja/core-code-style.md index 7e9e81040e..60e847b4cf 100644 --- a/docs/internals-ja/core-code-style.md +++ b/docs/internals-ja/core-code-style.md @@ -56,7 +56,7 @@ PHP コードは BOM 無しの UTF-8 のみを使わなければなりません - クラスは `CamelCase` で命名されなければなりません。 - 中括弧は常にクラス名の下の行に書かれるべきです。 - 全てのクラスは PHPDoc に従ったドキュメントブロックを持たなければなりません。 -- クラス内のすべてのコードは一個のタブによってインデントされなければなりません。 +- クラス内のすべてのコードは4個の空白によってインデントされなければなりません。 - 一つの PHP ファイルにはクラスが一つだけあるべきです。 - 全てのクラスは名前空間に属すべきです。 - クラス名はファイル名と合致すべきです。クラスの名前空間はディレクトリ構造と合致すべきです。