Skip to content

Commit

Permalink
docs/guide-ja updated [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
softark committed May 19, 2015
1 parent ada1131 commit 64cdef1
Show file tree
Hide file tree
Showing 11 changed files with 89 additions and 84 deletions.
25 changes: 12 additions & 13 deletions docs/guide-ja/concept-autoloading.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
クラスのオートローディング
=================

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

> 補足: 説明を簡単にするため、このセクションではクラスのオートローディングについてのみお話しします。しかし、
Expand All @@ -14,24 +14,24 @@ Yii オートローダーの使用 <span id="using-yii-autoloader"></span>

Yii のクラスオートローダーを使用するには、自分のクラスを作成して名前を付けるとき、次の2つの単純なルールに従わなければなりません:

* 各クラスは名前空間の下になければなりません (例 `foo\bar\MyClass`)
* 各クラスは [名前空間](http://php.net/manual/ja/language.namespaces.php) の下になければなりません (例 `foo\bar\MyClass`)
* 各クラスは次のアルゴリズムで決定される個別のファイルに保存されなければなりません:

```php
// $className は先頭にバックスラッシュを持つ完全修飾名
// $className は先頭にバックスラッシュを持たない完全修飾クラス名
$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');
```
たとえば、クラス名と名前空間が `foo\bar\MyClass` であれば、対応するクラスファイルのパスの [エイリアス](concept-aliases.md) は、
`@foo/bar/MyClass.php` になります。このエイリアスがファイルパスになるようにするには`@foo` または `@foo/bar`
`@foo/bar/MyClass.php` になります。このエイリアスがファイルパスとして解決できるようにするためには`@foo` または `@foo/bar`
のどちらかが、 [ルートエイリアス](concept-aliases.md#defining-aliases) でなければなりません。

[ベーシックプロジェクトテンプレート](start-basic.md) を使用している場合、最上位の名前空間 `app` の下にクラスを置くことができ、
[ベーシックプロジェクトテンプレート](start-installation.md) を使用している場合、最上位の名前空間 `app` の下にクラスを置くことができ、
そうすると、新しいエイリアスを定義しなくても、Yii によってそれらをオートロードできるようになります。これは `@app`
[事前定義されたエイリアス](concept-aliases.md#predefined-aliases) であるためで、`app\components\MyClass` のようなクラス名を
今説明したアルゴリズムに従って、クラスファイル `AppBasePath/components/MyClass.php` だと解決できるのです
今説明したアルゴリズムに従って、クラスファイル `AppBasePath/components/MyClass.php` であると解決することが出来ます

[アドバンストプロジェクトテンプレート](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-ja/README.md) では、各階層にそれ自身のルートエイリアスを持っています。たとえば、
フロントエンド層はルートエイリアス `@frontend` を持ち、バックエンド層は `@backend` です。その結果、名前空間 `frontend` の下に
[アドバンストプロジェクトテンプレート](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-ja/README.md) では、各層がそれ自身のルートエイリアスを持っています。たとえば、
フロントエンド層はルートエイリアス `@frontend` を持ち、バックエンド層のルートエイリアスは `@backend` です。その結果、名前空間 `frontend` の下に
フロントエンドクラスを置き、バックエンドクラスを `backend` の下に置けます。これで、これらのクラスは Yii のオートローダーによって
オートロードできるようになります。

Expand Down Expand Up @@ -62,7 +62,7 @@ Yii はパッケージ依存関係マネージャとして Composer を包含し

Yii オートローダーを他のオートローダーと一緒に使うときは、他のすべてのオートローダーがインストールされた *後で*`Yii.php`
ファイルをインクルードする必要があります。これで Yii のオートローダーが、任意クラスのオートローディング要求に応答する最初のものになります。
たとえば、次のコードは [Basic Application Template](start-basic.md)[エントリスクリプト](structure-entry-scripts.md) から抜粋したものです。
たとえば、次のコードは [ベーシックプロジェクトテンプレート](start-installation.md)[エントリスクリプト](structure-entry-scripts.md) から抜粋したものです。
最初の行は、Composer のオートローダーをインストールしており、二行目は Yii のオートローダーをインストールしています。

```php
Expand All @@ -73,7 +73,7 @@ require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
あなたは Yii のオートローダーを使わず、Composer のオートローダーだけを単独で使用することもできます。しかし、そうすることによって、
あなたのクラスのオートローディングのパフォーマンスは低下し、クラスをオートロード可能にするために Composer が設定したルールに従わなければならなくなります。

> Info: Yiiのオートローダーを使用したくない場合は、 `Yii.php` ファイルの独自のバージョンを作成し
> Info: Yiiのオートローダーを使用したくない場合は、 `Yii.php` ファイルのあなた独自のバージョンを作成し
それを [エントリスクリプト](structure-entry-scripts.md) でインクルードする必要があります。


Expand All @@ -84,5 +84,4 @@ Yii のオートローダーは、 [エクステンション](structure-extensio
エクステンションがその `composer.json` ファイルに正しく `autoload` セクションを指定していることです。
`autoload` 指定方法の詳細については [Composer のドキュメント](https://getcomposer.org/doc/04-schema.md#autoload) 参照してください。

Yii のオートローダーを使用しない場合でも、まだ Composer のオートローダーはエクステンションクラスをオートロード可能です。

Yii のオートローダーを使用しない場合でも、まだ Composer のオートローダーがエクステンションクラスをオートロードすることが可能です。
4 changes: 2 additions & 2 deletions docs/guide-ja/concept-di-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,8 +325,8 @@ class HotelController extends Controller
}
```

あなたがブラウザからこのコントローラにアクセスすると、 `BookingInterface` をインスタンス化できませんという
不具合報告エラーが表示されるでしょう。これは、この依存関係に対処する方法を DI コンテナに教える必要があるからです:
あなたがブラウザからこのコントローラにアクセスすると、 `BookingInterface` をインスタンス化できない、という不平を言う
エラーが表示されるでしょう。これは、この依存関係に対処する方法を DI コンテナに教える必要があるからです:

```php
\Yii::$container->set('app\components\BookingInterface', 'app\components\BookingService');
Expand Down
10 changes: 5 additions & 5 deletions docs/guide-ja/concept-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
イベントを使うと、既存のコードの特定の実行ポイントに、カスタムコードを挿入することができます。イベントにカスタムコードを添付すると、
イベントがトリガされたときにコードが自動的に実行されます。たとえば、メーラーオブジェクトがメッセージを正しく送信できたとき、
`messageSent` イベントをトリガするとします。もしメッセージの送信がうまく行ったことを知りたければ、単に `messageSent`
イベントにトラッキングコードを付与すするだけで、それが可能になります。
イベントにトラッキングコードを付与するだけで、それが可能になります。

Yiiはイベントをサポートするために、 [[yii\base\Component]] と呼ばれる基底クラスを導入してします。クラスがイベントをトリガする必要がある場合は、
[[yii\base\Component]] もしくはその子クラスを継承する必要があります。
Expand All @@ -16,10 +16,10 @@ Yiiはイベントをサポートするために、 [[yii\base\Component]] と
イベントハンドラとは、関連するイベントがトリガされたときに実行される、 [PHP コールバック](http://www.php.net/manual/ja/language.types.callable.php)
です。次のコールバックのいずれも使用可能です:

- 文字列で指定されたグローバル PHP 関数 (括弧を除く) `'trim'` など
- オブジェクトとメソッド名文字列の配列で指定された、オブジェクトのメソッド (括弧を除く) `[$object, 'methodName']` など
- クラス名文字列とメソッド名文字列の配列で指定された、静的なクラスメソッド (括弧を除く) `['ClassName', 'methodName']` など
- 無名関数 `function ($event) { ... }` など
- 文字列で指定されたグローバル PHP 関数 (括弧を除く)、例えば `'trim'`
- オブジェクトとメソッド名文字列の配列で指定された、オブジェクトのメソッド (括弧を除く)、例えば `[$object, 'methodName']`
- クラス名文字列とメソッド名文字列の配列で指定された、静的なクラスメソッド (括弧を除く)、例えば `['ClassName', 'methodName']`
- 無名関数、例えば `function ($event) { ... }`

イベントハンドラのシグネチャはこのようになります:

Expand Down
2 changes: 1 addition & 1 deletion docs/guide-ja/db-active-record.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ $customer = Customer::findOne([

// アクティブでない全ての顧客を返す
// SELECT * FROM `customer` WHERE `status` = 0
$customer = Customer::findAll([
$customers = Customer::findAll([
'status' => Customer::STATUS_INACTIVE,
]);
```
Expand Down
14 changes: 7 additions & 7 deletions docs/guide-ja/rest-authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ Yii は上記の全ての認証方法をサポートしています。新しい
その代りに、すべてのリクエストに対して認証が実行されます。このことは、ステップ 2 と 3 によって達成されます。

> Tip|情報: RESTful API をアプリケーションの形式で開発する場合は、アプリケーションの構成情報で `user` アプリケーションコンポーネント(structure-application-components.md) の [[yii\web\User::enableSession|enableSession]] プロパティを構成することが出来ます。
RESTful API をモジュールとして開発する場合は、次のように、モジュールの `init()` メソッドに一行を追加することが出来ます。
> RESTful API をモジュールとして開発する場合は、次のように、モジュールの `init()` メソッドに一行を追加することが出来ます。
> ```php
public function init()
{
parent::init();
\Yii::$app->user->enableSession = false;
}
```
> public function init()
> {
> parent::init();
> \Yii::$app->user->enableSession = false;
> }
> ```
例えば、HTTP Basic 認証を使う場合は、`authenticator` ビヘイビアを次のように構成することが出来ます。
Expand Down
10 changes: 5 additions & 5 deletions docs/guide-ja/runtime-requests.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ $param = $request->getBodyParam('id');
```php
$request = Yii::$app->request;

if ($request->isAjax) { // リクエストは AJAX リクエスト }
if ($request->isGet) { // リクエストメソッドは GET }
if ($request->isPost) { // リクエストメソッドは POST }
if ($request->isPut) { // リクエストメソッドは PUT }
if ($request->isAjax) { /* リクエストは AJAX リクエスト */ }
if ($request->isGet) { /* リクエストメソッドは GET */ }
if ($request->isPost) { /* リクエストメソッドは POST */ }
if ($request->isPut) { /* リクエストメソッドは PUT */ }
```

## リクエストの URL <span id="request-urls"></span>
Expand Down Expand Up @@ -99,7 +99,7 @@ $headers = Yii::$app->request->headers;
// Accept ヘッダの値を返す
$accept = $headers->get('Accept');

if ($headers->has('User-Agent')) { // User-Agent ヘッダが在る }
if ($headers->has('User-Agent')) { /* User-Agent ヘッダが在る */ }
```

`request` コンポーネントは、よく使用されるいくつかのヘッダにすばやくアクセスする方法を提供しています。
Expand Down
Loading

0 comments on commit 64cdef1

Please sign in to comment.