Commit fa07b12f by Carsten Brandt

Merge branch 'master' of github.com:yiisoft/yii2

* 'master' of github.com:yiisoft/yii2: Update test-fixtures.md docs/guide-ja/tutorial-mailing.md - added [ci skip] docs/guide/tutorial-mailing.md - corrections [ci skip] docs/guide/tutorial-i18n.md revised [ci skip] Fixed typo docs/guide-ja updated [ci skip] docs/guide-ja/tutorial-i18n.md - completed [ci skip] docs/guide-ja/tutorial-i18n.md - WIP docs/guide-ja/tutorial-i18n.md - WIP [ci skip] docs/guide-ja/tutorial-i18n.md - WIP [ci skip] Update start-hello.md yii\db\ActiveQuery phpDoc fix
parents 92f22165 cb77a4d4
...@@ -165,8 +165,8 @@ RESTful ウェブサービス ...@@ -165,8 +165,8 @@ RESTful ウェブサービス
* [アプリケーションを一から構築する](tutorial-start-from-scratch.md) * [アプリケーションを一から構築する](tutorial-start-from-scratch.md)
* [コンソールコマンド](tutorial-console.md) * [コンソールコマンド](tutorial-console.md)
* [コアバリデータ](tutorial-core-validators.md) * [コアバリデータ](tutorial-core-validators.md)
* **翻訳中** [国際化](tutorial-i18n.md) * [国際化](tutorial-i18n.md)
* **翻訳中** [メール](tutorial-mailing.md) * [メール送信](tutorial-mailing.md)
* **翻訳中** [パフォーマンスチューニング](tutorial-performance-tuning.md) * **翻訳中** [パフォーマンスチューニング](tutorial-performance-tuning.md)
* **翻訳中** [共有ホスト環境](tutorial-shared-hosting.md) * **翻訳中** [共有ホスト環境](tutorial-shared-hosting.md)
* **翻訳中** [テンプレートエンジン](tutorial-template-engines.md) * **翻訳中** [テンプレートエンジン](tutorial-template-engines.md)
......
...@@ -91,6 +91,11 @@ $customer->email = 'jane@example.com'; ...@@ -91,6 +91,11 @@ $customer->email = 'jane@example.com';
$customer->save(); $customer->save();
``` ```
> Note|注意: 自明なことですが、カラム名が直接にアクティブレコードクラスの属性名になりますので、データベースの命名スキーマでアンダースコアを使用している場合はアンダースコアを持つ属性名になります。
> 例えば、`user_name` というカラムは、アクティブレコードのオブジェクトでは `$user->user_name` としてアクセスされることになります。
> コードスタイルが気になるのであれば、データベースの命名スキーマも camelCase を使用しなければなりません。
> しかしながら、camelCase の使用は要求されてはいません。Yii は他のどのような命名スタイルでも十分に動作します。
データベースに接続する データベースに接続する
---------------------- ----------------------
......
フィクスチャ フィクスチャ
============ ============
> Note|注意: この節はまだ執筆中です。
フィクスチャはテストの重要な部分です。 フィクスチャはテストの重要な部分です。
フィクスチャの主な目的は、テストを期待されている方法で繰り返して実行できるように、環境を固定された既知の状態に設定することです。 フィクスチャの主な目的は、テストを期待されている方法で繰り返して実行できるように、環境を固定された既知の状態に設定することです。
Yii は、フィクスチャを正確に定義して容易に使うことを可能にするフィクスチャフレームワークを提供しています。 Yii は、フィクスチャを正確に定義して容易に使うことを可能にするフィクスチャフレームワークを提供しています。
...@@ -42,6 +40,12 @@ class UserFixture extends ActiveFixture ...@@ -42,6 +40,12 @@ class UserFixture extends ActiveFixture
> [[yii\test\ActiveFixture::tableName]] プロパティまたは [[yii\test\ActiveFixture::modelClass]] プロパティを設定することによって、テーブルを指定することが出来ます。 > [[yii\test\ActiveFixture::tableName]] プロパティまたは [[yii\test\ActiveFixture::modelClass]] プロパティを設定することによって、テーブルを指定することが出来ます。
> 後者を使う場合は、`modelClass` によって指定される `ActiveRecord` クラスからテーブル名が取得されます。 > 後者を使う場合は、`modelClass` によって指定される `ActiveRecord` クラスからテーブル名が取得されます。
> Note|注意: [[yii\test\ActiveFixture]] は SQL データベースにのみ適しています。
> NoSQL データベースのためには、Yii は以下の `ActiveFixture` クラスを提供しています。
>
> - Mongo DB: [[yii\mongodb\ActiveFixture]]
> - Elasticsearch: [[yii\elasticsearch\ActiveFixture]] (バージョン 2.0.2 以降)
`ActiveFixture` フィクスチャのフィクスチャデータは通常は `FixturePath/data/TableName.php` として配置されるファイルで提供されます。 `ActiveFixture` フィクスチャのフィクスチャデータは通常は `FixturePath/data/TableName.php` として配置されるファイルで提供されます。
ここで `FixturePath` はフィクスチャクラスファイルを含むディレクトリを意味し、`TableName` はフィクスチャと関連付けられているテーブルの名前です。 ここで `FixturePath` はフィクスチャクラスファイルを含むディレクトリを意味し、`TableName` はフィクスチャと関連付けられているテーブルの名前です。
...@@ -92,6 +96,10 @@ class UserProfileFixture extends ActiveFixture ...@@ -92,6 +96,10 @@ class UserProfileFixture extends ActiveFixture
} }
``` ```
依存関係は、また、複数のフィクスチャが正しく定義された順序でロードされ、アンロードされることを保証します。
上記の例では、全ての外部キー参照が存在することを保証するために `UserFixture` は常に `UserProfileFixture` の前にロードされます。
また、同じ理由によって、`UserFixture` は常に `UserProfileFixture` がアンロードされた後でアンロードされます。
上記では、DB テーブルに関してフィクスチャを定義する方法を示しました。 上記では、DB テーブルに関してフィクスチャを定義する方法を示しました。
DB と関係しないフィクスチャ (例えば、何らかのファイルやディレクトリに関するフィクスチャ) を定義するためには、より汎用的な基底クラス [[yii\test\Fixture]] から拡張して、[[yii\test\Fixture::load()|load()]] と [[yii\test\Fixture::unload()|unload()]] のメソッドをオーバーライドすることが出来ます。 DB と関係しないフィクスチャ (例えば、何らかのファイルやディレクトリに関するフィクスチャ) を定義するためには、より汎用的な基底クラス [[yii\test\Fixture]] から拡張して、[[yii\test\Fixture::load()|load()]] と [[yii\test\Fixture::unload()|unload()]] のメソッドをオーバーライドすることが出来ます。
...@@ -232,7 +240,9 @@ data\ ...@@ -232,7 +240,9 @@ data\
Managing Fixtures Managing Fixtures
================= =================
// todo: this tutorial may be merged into test-fixture.md > Note: This section is under development.
>
> todo: this tutorial may be merged with the above part of test-fixtures.md
Fixtures are important part of testing. Their main purpose is to populate you with data that needed by testing Fixtures are important part of testing. Their main purpose is to populate you with data that needed by testing
different cases. With this data using your tests becoming more efficient and useful. different cases. With this data using your tests becoming more efficient and useful.
......
...@@ -76,7 +76,7 @@ use yii\helpers\Html; ...@@ -76,7 +76,7 @@ use yii\helpers\Html;
``` ```
Представление `say` должно быть сохранено в файле `views/site/say.php`. Когда метод [[yii\web\Controller::render()|render()]] Представление `say` должно быть сохранено в файле `views/site/say.php`. Когда метод [[yii\web\Controller::render()|render()]]
вызывается в действии, он будет искать PHP файл с именем вида `views/ControllerID/ActionID/ViewName.php`. вызывается в действии, он будет искать PHP файл с именем вида `views/ControllerID/ViewName.php`.
Стоит отметить, что в коде выше параметр `message` [[yii\helpers\Html::encode()|экранируется для HTML]] перед выводом. Стоит отметить, что в коде выше параметр `message` [[yii\helpers\Html::encode()|экранируется для HTML]] перед выводом.
Это обязательно так как параметр приходит от пользователя, который может попытаться провести Это обязательно так как параметр приходит от пользователя, который может попытаться провести
......
...@@ -99,7 +99,7 @@ $customer->save(); ...@@ -99,7 +99,7 @@ $customer->save();
> Note: Obviously, because column names become attribute names of the active record class directly, you > Note: Obviously, because column names become attribute names of the active record class directly, you
> get attribute names with underscores if you have that kind of naming schema in your database. For example > get attribute names with underscores if you have that kind of naming schema in your database. For example
> a column `user_name` will be accessed as `$user->user_name` on the active record object. If you are concerned about code style > a column `user_name` will be accessed as `$user->user_name` on the active record object. If you are concerned about code style
> you should adopt your database naming schema to use camelCase too. However, camelCase if not a requirement, Yii can work > you should adopt your database naming schema to use camelCase too. However, camelCase is not a requirement, Yii can work
> well with any other naming style. > well with any other naming style.
......
...@@ -227,7 +227,6 @@ Summary ...@@ -227,7 +227,6 @@ Summary
> Note: This section is under development. > Note: This section is under development.
Fixtures are important part of testing. Their main purpose is to set up the environment in a fixed/known state
In the above, we have described how to define and use fixtures. Below we summarize the typical workflow In the above, we have described how to define and use fixtures. Below we summarize the typical workflow
of running unit tests related with DB: of running unit tests related with DB:
......
...@@ -97,14 +97,14 @@ use yii\helpers\Url; ...@@ -97,14 +97,14 @@ use yii\helpers\Url;
/* @var $message \yii\mail\BaseMessage instance of newly created mail message */ /* @var $message \yii\mail\BaseMessage instance of newly created mail message */
?> ?>
<h2>This message allows you to visit out site home page by one click</h2> <h2>This message allows you to visit our site home page by one click</h2>
<?= Html::a('Go to home page', Url::home('http')) ?> <?= Html::a('Go to home page', Url::home('http')) ?>
``` ```
In order to compose message content via view file simply pass view name to the `compose()` method: In order to compose message content via view file simply pass view name to the `compose()` method:
```php ```php
Yii::$app->mailer->compose('home-link') // message body becomes a view rendering result here Yii::$app->mailer->compose('home-link') // a view rendering result becomes the message body here
->setFrom('from@domain.com') ->setFrom('from@domain.com')
->setTo('to@domain.com') ->setTo('to@domain.com')
->setSubject('Message subject') ->setSubject('Message subject')
...@@ -183,8 +183,8 @@ $message->attachContent('Attachment content', ['fileName' => 'attach.txt', 'cont ...@@ -183,8 +183,8 @@ $message->attachContent('Attachment content', ['fileName' => 'attach.txt', 'cont
``` ```
Embed images Embedding images
------------ ----------------
You can embed images into the message content using `embed()` method. This method returns the attachment id, You can embed images into the message content using `embed()` method. This method returns the attachment id,
which should be then used at 'img' tag. which should be then used at 'img' tag.
...@@ -196,7 +196,7 @@ Yii::$app->mailer->compose('embed-email', ['imageFileName' => '/path/to/image.jp ...@@ -196,7 +196,7 @@ Yii::$app->mailer->compose('embed-email', ['imageFileName' => '/path/to/image.jp
->send(); ->send();
``` ```
Then inside view file you can use following code: Then inside the view file you can use the following code:
```php ```php
<img src="<?= $message->embed($imageFileName); ?>"> <img src="<?= $message->embed($imageFileName); ?>">
...@@ -206,17 +206,17 @@ Then inside view file you can use following code: ...@@ -206,17 +206,17 @@ Then inside view file you can use following code:
Testing and debugging Testing and debugging
--------------------- ---------------------
Developer often a to check, what actual emails are sent by application, what was their content and so on. A developer often has to check, what actual emails are sent by the application, what was their content and so on.
Such ability is granted by Yii via `yii\mail\BaseMailer::useFileTransport`. If enabled, this option enforces Such ability is granted by Yii via `yii\mail\BaseMailer::useFileTransport`. If enabled, this option enforces
saving mail message data into the local files instead of regular sending. These files will be saved under saving mail message data into the local files instead of regular sending. These files will be saved under
`yii\mail\BaseMailer::fileTransportPath`, which is '@runtime/mail' by default. `yii\mail\BaseMailer::fileTransportPath`, which is '@runtime/mail' by default.
> Note: you can either save messages to the file or send them to actual recipients, but can not do both simultaneously. > Note: you can either save the messages to the files or send them to the actual recipients, but can not do both simultaneously.
Mail message file can be opened by regular text file editor, so you can browse actual message headers, content and so on. A mail message file can be opened by a regular text file editor, so you can browse the actual message headers, content and so on.
This mechanism amy prove itself, while debugging application or running unit test. This mechanism may prove itself, while debugging application or running unit test.
> Note: mail message file content is composed via `\yii\mail\MessageInterface::toString()`, so it depends on actual > Note: the mail message file content is composed via `\yii\mail\MessageInterface::toString()`, so it depends on the actual
mail extension you are using in your application. mail extension you are using in your application.
...@@ -225,7 +225,7 @@ Creating your own mail solution ...@@ -225,7 +225,7 @@ Creating your own mail solution
In order to create your own custom mail solution, you need to create 2 classes: one for the 'Mailer' and In order to create your own custom mail solution, you need to create 2 classes: one for the 'Mailer' and
another one for the 'Message'. another one for the 'Message'.
You can use `yii\mail\BaseMailer` and `yii\mail\BaseMessage` as a base classes for your solution. These classes You can use `yii\mail\BaseMailer` and `yii\mail\BaseMessage` as the base classes for your solution. These classes
already contains basic logic, which is described in this guide. However, their usage is not mandatory, it is enough already contain the basic logic, which is described in this guide. However, their usage is not mandatory, it is enough
to implement `yii\mail\MailerInterface` and `yii\mail\MessageInterface` interfaces. to implement `yii\mail\MailerInterface` and `yii\mail\MessageInterface` interfaces.
Then you need to implement all abstract methods to build you solution. Then you need to implement all the abstract methods to build your solution.
...@@ -407,7 +407,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface ...@@ -407,7 +407,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
* Inner joins with the specified relations. * Inner joins with the specified relations.
* This is a shortcut method to [[joinWith()]] with the join type set as "INNER JOIN". * This is a shortcut method to [[joinWith()]] with the join type set as "INNER JOIN".
* Please refer to [[joinWith()]] for detailed usage of this method. * Please refer to [[joinWith()]] for detailed usage of this method.
* @param array $with the relations to be joined with * @param string|array $with the relations to be joined with
* @param boolean|array $eagerLoading whether to eager loading the relations * @param boolean|array $eagerLoading whether to eager loading the relations
* @return static the query object itself * @return static the query object itself
* @see joinWith() * @see joinWith()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment