Skip to content

Commit

Permalink
Merge branch 'master' into expression_sort
Browse files Browse the repository at this point in the history
* master: (54 commits)
  Suggest latest PHP 7 usage in the guide [skip ci]
  Update .travis.yml
  Update .travis.yml
  travis_retry for mysql
  Fixes yiisoft#13401: Fixed lack of escaping of request dump at exception screens
  Added support for field `yii\console\controllers\BaseMigrateController::$migrationNamespaces` setup from CLI
  Adjusted changelog
  docs/guide-ja some files updated [ci skip] (yiisoft#13396)
  Revert "Fixed some comment issues (yiisoft#13392) [skip ci]"
  Fixes yiisoft#11464: Foreign key name is not provided by schema
  Removed unused method
  Exposed number normalization as StringHelper::normalizeNumber()
  Fixes yiisoft#13287: Fixed translating "and" separator in `UniqueValidator` error message
  Fixes yiisoft#12133: Fixed `getDbTargets()` function in `yii\log\migrations\m141106_185632_log_init` that would create a log table correctly
  Fixed some comment issues (yiisoft#13392) [skip ci]
  Fixed typos in docs/internals/core-code-style (yiisoft#13391) [skip ci]
  fixed some links in doc (yiisoft#13390)
  Used is_subclass_of() as suggested by @SamMousa
  Fixes yiisoft#13387: Extracted "Custom validator for multiple attributes" into community cookbook
  Updated travis config to build only on master branches
  ...
  • Loading branch information
lav45 committed Jan 19, 2017
2 parents d9aaabf + 3f66fb6 commit 1300ab5
Show file tree
Hide file tree
Showing 73 changed files with 1,401 additions and 612 deletions.
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ dist: trusty
# faster builds on new travis setup not using sudo
sudo: false

# build only on master branches
branches:
only:
- master
- 2.1


#
# Test Matrix
Expand Down Expand Up @@ -128,7 +134,7 @@ before_script:
- psql --version

# initialize databases
- mysql -e 'CREATE DATABASE `yiitest`;';
- travis_retry mysql -e 'CREATE DATABASE `yiitest`;';
- mysql -e "CREATE USER 'travis'@'localhost' IDENTIFIED WITH mysql_native_password;";
- mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'travis'@'localhost' WITH GRANT OPTION;";
- psql -U postgres -c 'CREATE DATABASE yiitest;';
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-es/concept-autoloading.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Autocarga de clases

Yii depende del [mecanismo de autocarga de clases](http://www.php.net/manual/es/language.oop5.autoload.php) para localizar
e incluir los archivos de las clases requiridas. Proporciona un cargador de clases de alto rendimiento que cumple con el
[estandard PSR-4](https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.md).
[estandard PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md).
El cargador se instala cuando incluyes el archivo `Yii.php`.

> Note: Para simplificar la descripción, en esta sección sólo hablaremos de la carga automática de clases. Sin embargo,
Expand Down
45 changes: 41 additions & 4 deletions docs/guide-ja/caching-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,41 @@ $data = $cache->get($key);
if ($data === false) {

// キャッシュの中に $data が見つからない場合は一から作る
$data = $this->calculateSomething();

// 次回はそれを取得できるように $data をキャッシュに格納する
// $data をキャッシュに格納して、次回はそれを取得できるようにする
$cache->set($key, $data);
}

// $data はここで利用できる
// この時点で $data は利用可能になっている
```

バージョン 2.0.11 以降は、[キャッシュコンポーネント](#cache-components) が提供する [[yii\caching\Cache::getOrSet()|getOrSet()]] メソッドを使って、
データを取得、計算、保存するためのコードを単純化することが出来ます。
次に示すコードは、上述の例と全く同じことをするものです。

```php
$data = $cache->getOrSet($key, function () {
return $this->calculateSomething();
});
```

キャッシュが `$key` と関連づけられたデータを保持している場合は、キャッシュされている値が返されます。
そうでない場合は、渡された無名関数が実行されて値が計算され、その値がキャッシュされるとともに返されます。

無名関数が外部のスコープの何らかのデータを必要とする場合は、それを `use` 文を使って渡すことが出来ます。
例えば、

```php
$user_id = 42;
$data = $cache->getOrSet($key, function () use ($user_id) {
return $this->calculateSomething($user_id);
});
```

> Note: [[yii\caching\Cache::getOrSet()|getOrSet()]] メソッドは、有効期限と依存もサポートしています。
詳しくは [キャッシュの有効期限](#cache-expiration)[キャッシュの依存](#cache-dependencies) を参照してください。


## キャッシュコンポーネント <span id="cache-components"></span>

Expand Down Expand Up @@ -97,6 +124,8 @@ Yii はさまざまなキャッシュストレージをサポートしていま
* [[yii\caching\Cache::get()|get()]]: 指定されたキーを用いてキャッシュからデータを取得します。データが見つからないか、もしくは有効期限が切れたり無効になったりしている場合は false を返します。
* [[yii\caching\Cache::set()|set()]]: キーによって識別されるデータをキャッシュに格納します。
* [[yii\caching\Cache::add()|add()]]: キーがキャッシュ内で見つからない場合に、キーによって識別されるデータをキャッシュに格納します。
* [[yii\caching\Cache::getOrSet()|getOrSet()]]: 指定されたキーを用いてキャッシュからデータを取得します。
取得できなかった場合は、渡されたコールバック関数を実行し、関数の返り値をそのキーでキャッシュに保存し、そしてその値を返します。
* [[yii\caching\Cache::multiGet()|multiGet()]]: 指定されたキーを用いてキャッシュから複数のデータを取得します。
* [[yii\caching\Cache::multiSet()|multiSet()]]: キャッシュに複数のデータを格納します。各データはキーによって識別されます。
* [[yii\caching\Cache::multiAdd()|multiAdd()]]: キャッシュに複数のデータを格納します。各データはキーによって識別されます。もしキャッシュ内にキーがすでに存在する場合はスキップされます。
Expand Down Expand Up @@ -132,7 +161,7 @@ $value2 = $cache['var2']; // $value2 = $cache->get('var2'); と同等

```php
[
__CLASS__, // クラス名
__CLASS__, // スキーマクラス名
$this->db->dsn, // データベース接続のデータソース名
$this->db->username, // データベース接続のログインユーザ
$name, // テーブル名
Expand All @@ -141,6 +170,11 @@ $value2 = $cache['var2']; // $value2 = $cache->get('var2'); と同等

見ての通り、キーは一意にデータベースのテーブルを指定するために必要なすべての情報を含んでいます。

> Note: [[yii\caching\Cache::multiSet()|multiSet()]] または [[yii\caching\Cache::multiAdd()|multiAdd()]] によってキャッシュに保存される値が持つことが出来るのは、
文字列または整数のキーだけです。それらより複雑なキーを設定する必要がある場合は、
[[yii\caching\Cache::set()|set()]] または [[yii\caching\Cache::add()|add()]] によって、値を個別に保存してください。


同じキャッシュストレージが異なるアプリケーションによって使用されているときは、キャッシュのキーの競合を避けるために、各アプリケーションではユニークなキーの接頭辞を指定する必要があります。これは [[yii\caching\Cache::keyPrefix]] プロパティを設定することでできます。例えば、アプリケーションのコンフィギュレーションで以下のように書くことができます:

```php
Expand Down Expand Up @@ -174,6 +208,9 @@ if ($data === false) {
}
```

バージョン 2.0.11 以降は、デフォルトの無限の有効期限に替えて特定の有効期限を指定したい場合には、キャッシュコンポーネントの構成で [[yii\caching\Cache::$defaultDuration|defaultDuration]] の値を指定することが出来ます。
これによって、特定の `duration` パラメータを毎回 [[yii\caching\Cache::set()|set()]] に渡さなくてもよくなります。


### キャッシュの依存 <span id="cache-dependencies"></span>

Expand Down Expand Up @@ -259,7 +296,7 @@ $result = Customer::getDb()->cache(function ($db) {

クエリキャッシュには [[yii\db\Connection]] を通して設定可能な三つのグローバルなオプションがあります:

* [[yii\db\Connection::enableQueryCache|enableQueryCache]]: クエリキャッシュを可能にするかどうか。デフォルトは true です。
* [[yii\db\Connection::enableQueryCache|enableQueryCache]]: クエリキャッシュを可能にするかどうか。デフォルトは `true` です。
実効的にクエリキャッシュをオンにするには [[yii\db\Connection::queryCache|queryCache]] によって指定される有効なキャッシュを持っている必要があることに注意してください。
* [[yii\db\Connection::queryCacheDuration|queryCacheDuration]]: これはクエリ結果がキャッシュ内に有効な状態として持続できる秒数を表します。
クエリキャッシュを永遠にキャッシュに残したい場合は 0 を指定することができます。
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-ja/caching-fragment.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if ($this->beginCache($id)) {
```

つまり、コンテント生成ロジックを [[yii\base\View::beginCache()|beginCache()]][[yii\base\View::endCache()|endCache()]] の呼び出しのペアで囲みます。
コンテントがキャッシュ内で見つかった場合、[[yii\base\View::beginCache()|beginCache()]] はキャッシュされたコンテントをレンダリングして false を返し、結果として、コンテント生成ロジックがスキップされます。
コンテントがキャッシュ内で見つかった場合、[[yii\base\View::beginCache()|beginCache()]] はキャッシュされたコンテントをレンダリングして `false` を返し、結果として、コンテント生成ロジックがスキップされます。
それ以外の場合はコンテント生成ロジックが呼ばれ、そして [[yii\base\View::endCache()|endCache()]] が呼ばれたときに、生成されたコンテントがキャプチャされ、キャッシュに格納されます。

[データキャッシュ](caching-data.md) と同様に、キャッシュされるコンテントを識別するためにユニークな `$id` が必要になります。
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-ja/concept-autoloading.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
=================

Yiiは、必要となるすべてのクラスファイルを特定してインクルードするにあたり、 [クラスのオートローディングメカニズム](http://www.php.net/manual/ja/language.oop5.autoload.php)
を頼りにします。Yii は、[PSR-4 標準](https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.md) に準拠した、高性能なクラスのオートローダーを提供しています。
を頼りにします。Yii は、[PSR-4 標準](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md) に準拠した、高性能なクラスのオートローダーを提供しています。
このオートローダーは、あなたが `Yii.php` ファイルをインクルードするときにインストールされます。

> Note: 説明を簡単にするため、このセクションではクラスのオートローディングについてのみお話しします。しかし、
Expand Down
20 changes: 20 additions & 0 deletions docs/guide-ja/concept-configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,26 @@ $config = [

アプリケーションの `components` プロパティ構成の詳細については、 [アプリケーション](structure-applications.md) セクションと [サービスロケータ](concept-service-locator.md) セクションにあります。

バージョン 2.0.11 以降では、アプリケーション構成で `container` プロパティを使って [依存注入コンテナ](concept-di-container.md) を構成することがサポートされています。

```php
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'extensions' => require(__DIR__ . '/../vendor/yiisoft/extensions.php'),
'container' => [
'definitions' => [
'yii\widgets\LinkPager' => ['maxButtonCount' => 5]
],
'singletons' => [
// 依存注入コンテナのシングルトンの構成
]
]
];
```

`definitions``singletons` の構成情報配列に使用できる値とその実例についてさらに知るためには、
[依存注入コンテナ](concept-di-container.md)の記事の [高度な実際の使用方法](concept-di-container.md#advanced-practical-usage) の節を読んでください。

### ウィジェットの構成 <span id="widget-configurations"></span>

Expand Down

0 comments on commit 1300ab5

Please sign in to comment.