Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
84976bd7
Commit
84976bd7
authored
Feb 01, 2015
by
Nobuo Kihara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs/guide-ja/runtime - review [ci skip]
parent
0f5051b3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
28 additions
and
33 deletions
+28
-33
input-tabular-input.md
docs/guide-ja/input-tabular-input.md
+0
-2
runtime-bootstrapping.md
docs/guide-ja/runtime-bootstrapping.md
+4
-6
runtime-overview.md
docs/guide-ja/runtime-overview.md
+1
-1
runtime-requests.md
docs/guide-ja/runtime-requests.md
+4
-4
runtime-responses.md
docs/guide-ja/runtime-responses.md
+7
-8
runtime-routing.md
docs/guide-ja/runtime-routing.md
+0
-0
runtime-sessions-cookies.md
docs/guide-ja/runtime-sessions-cookies.md
+12
-12
No files found.
docs/guide-ja/input-tabular-input.md
View file @
84976bd7
...
...
@@ -60,8 +60,6 @@ class SettingsController extends Controller
次に、
`update`
ビューにあるフォームです。
Now the form that's in
`update`
view:
```
php
<?php
use
yii\helpers\Html
;
...
...
docs/guide-ja/runtime-bootstrapping.md
View file @
84976bd7
...
...
@@ -17,10 +17,8 @@
4.
[
[yii\base\Application::init()|init()
]
] が呼ばれます。
そして
`init()`
が
[
[yii\base\Application::bootstrap()|bootstrap()
]
] を呼んで、ブートストラップコンポーネントを走らせます。
-
エクステンションマニフェストファイル
`vendor/yiisoft/extensions.php`
をインクルードします。
-
エクステンションによって宣言された
[
ブートストラップコンポーネント
](
structure-extensions.md#bootstrapping-classes
)
を作成して走らせます。
-
アプリケーションの
[
bootstrap プロパティ
](
structure-applications.md#bootstrap
)
に宣言されている
[
アプリケーションコンポーネント
](
structure-application-components.md
)
および/または
[
モジュール
](
structure-modules.md
)
を作成して走らせます。
-
エクステンションによって宣言された
[
ブートストラップコンポーネント
](
structure-extensions.md#bootstrapping-classes
)
を作成して実行します。
-
アプリケーションの
[
bootstrap プロパティ
](
structure-applications.md#bootstrap
)
に宣言されている
[
アプリケーションコンポーネント
](
structure-application-components.md
)
および/または
[
モジュール
](
structure-modules.md
)
を作成して実行します。
ブートストラップの仕事は
*全て*
のリクエストを処理する前に、毎回しなければなりませんので、この過程を軽いものに保って可能な限り最適化することは非常に重要なことです。
...
...
@@ -29,10 +27,10 @@
例えば、モジュールが追加の URL 解析規則を登録する必要がある場合は、モジュールを
[
bootstrap プロパティ
](
structure-applications.md#bootstrap
)
のリストに挙げなければなりません。
なぜなら、URL 規則を使ってリクエストが解決される前に、新しい URL 規則を有効にしなければならないからです。
実
運用モードにおいては、
[
PHP OPCache
]
や
[
APC
]
など、バイトコードキャッシュを有効にして、PHP ファイルをインクルードして解析するのに要する時間を最小化してください。
本番
運用モードにおいては、
[
PHP OPCache
]
や
[
APC
]
など、バイトコードキャッシュを有効にして、PHP ファイルをインクルードして解析するのに要する時間を最小化してください。
[
PHP OPcache
]:
http://php.net/manual/ja/book.opcache.php
[
APC
]:
http://php.net/manual/ja/book.apc.php
大規模なアプリケーションには、多数の小さな構成情報ファイルに分割された、非常に複雑なアプリケーション
[
構成情報
](
concept-configurations.md
)
を持つものがあります。
そのような場合には、構成情報配列全体をキャッシュしておき、エントリスクリプトでアプリケーションのインスタンスを作成する前に
は、構成情報配列を
キャッシュからロードするという方法を考慮してください。
そのような場合には、構成情報配列全体をキャッシュしておき、エントリスクリプトでアプリケーションのインスタンスを作成する前に
構成情報をロードするときには、配列全体を直接に
キャッシュからロードするという方法を考慮してください。
docs/guide-ja/runtime-overview.md
View file @
84976bd7
概要
====
Yii のアプリケーションがリクエストを処理するときは、毎回、同じような
作業の流れを経験し
ます。
Yii のアプリケーションがリクエストを処理するときは、毎回、同じような
ワークフローになり
ます。
1.
ユーザが
[
エントリスクリプト
](
structure-entry-scripts.md
)
`web/index.php`
にリクエストをします。
2.
エントリスクリプトは、アプリケーションの
[
構成情報
](
concept-configurations.md
)
をロードして、リクエストを処理するための
[
アプリケーション
](
structure-applications.md
)
のインスタンスを作成します。
...
...
docs/guide-ja/runtime-requests.md
View file @
84976bd7
...
...
@@ -58,7 +58,7 @@ $param = $request->getBodyParam('id');
## リクエストメソッド <span id="request-methods"></span>
現在のリクエストに使用された HTTP メソッドは、
`Yii::$app->request->method`
という式によって取得することが出来ます。
現在のメソッドが特定のタイプであるかどうかをチェックするための、一
連
の真偽値のプロパティも提供されています。
現在のメソッドが特定のタイプであるかどうかをチェックするための、一
揃い
の真偽値のプロパティも提供されています。
例えば、
```
php
...
...
@@ -80,8 +80,8 @@ if ($request->isPut) { // リクエストメソッドは PUT }
*
[
[yii\web\Request::absoluteUrl|absoluteUrl
]
]:
`http://example.com/admin/index.php/product?id=100`
を返します。
ホスト情報の部分を含んだ URL です。
*
[
[yii\web\Request::hostInfo|hostInfo
]
]:
`http://example.com`
を返します。URL のホスト情報の部分です。
*
[
[yii\web\Request::pathInfo|pathInfo
]
]:
`/product`
を返します。エントリスクリプトの後、
かつ、クエスチョンマーク
(クエリ文字列) の前の部分です。
*
[
[yii\web\Request::queryString|queryString
]
]:
`id=100`
を返します。
クエスチョンマーク
の後の部分です。
*
[
[yii\web\Request::pathInfo|pathInfo
]
]:
`/product`
を返します。エントリスクリプトの後、
疑問符
(クエリ文字列) の前の部分です。
*
[
[yii\web\Request::queryString|queryString
]
]:
`id=100`
を返します。
疑問符
の後の部分です。
*
[
[yii\web\Request::baseUrl|baseUrl
]
]:
`/admin`
を返します。ホスト情報の後、かつ、エントリスクリプトの前の部分です。
*
[
[yii\web\Request::scriptUrl|scriptUrl
]
]:
`/admin/index.php`
を返します。パス情報とクエリ文字列を省略した URL です。
*
[
[yii\web\Request::serverName|serverName
]
]:
`example.com`
を返します。URL の中のホスト名です。
...
...
@@ -90,7 +90,7 @@ if ($request->isPut) { // リクエストメソッドは PUT }
## HTTP ヘッダ <span id="http-headers"></span>
[
[yii\web\Request::headers
]
] プロパティによって返される
[
[yii\web\HeaderCollection|header コレクション
]
] を通じて、HTTP ヘッダ情報を取得することが出来ます。例えば、
[
[yii\web\Request::headers
]
] プロパティによって返される
[
[yii\web\HeaderCollection|header コレクション
]
] を通じて、HTTP ヘッダ情報を取得することが出来ます。例えば、
```
php
// $headers は yii\web\HeaderCollection のオブジェクト
...
...
docs/guide-ja/runtime-responses.md
View file @
84976bd7
...
...
@@ -5,8 +5,7 @@
レスポンスオブジェクトは、HTTP ステータスコード、HTTP ヘッダ、HTTP ボディなどの情報を含みます。
ウェブアプリケーション開発の最終的な目的は、本質的には、さまざまなリクエストに対してそのようなレスポンスオブジェクトを作成することにあります。
ほとんどの場合は、主として
`response`
[
アプリケーションコンポーネント
](
structure-application-components.md
)
を使用すべきです。
このコンポーネントは、デフォルトでは、
[
[yii\web\Response
]
] のインスタンスです。
ほとんどの場合は、主として、デフォルトでは
[
[yii\web\Response
]
] のインスタンスである
`response`
[
アプリケーションコンポーネント
](
structure-application-components.md
)
を使用すべきです。
しかしながら、Yii は、以下で説明するように、あなた自身のレスポンスオブジェクトを作成してエンドユーザに送信することも許容しています。
この節では、レスポンスを構成してエンドユーザに送信する方法を説明します。
...
...
@@ -22,7 +21,7 @@
Yii
::
$app
->
response
->
statusCode
=
200
;
```
けれども
、たいていの場合、ステータスコードを明示的に設定する必要はありません。
ただし
、たいていの場合、ステータスコードを明示的に設定する必要はありません。
これは、
[
[yii\web\Response::statusCode
]
] のデフォルト値が 200 であるからです。
そして、リクエストが失敗したことを示したいときは、下記のように、適切な HTTP 例外を投げることが出来ます。
...
...
@@ -100,7 +99,7 @@ $response->data = ['message' => 'hello world'];
Yii は下記の形式を初めからサポートしています。
それぞれ、
[
[yii\web\ResponseFormatterInterface|フォーマッタ
]
] クラスとして実装されています。
[
[yii\web\Response::formatters
]
] プロパティを構成することで、これらのフォーマッタをカスタマイズしたり、
または、新しいフォーマッタを追加
することが出来ます。
[
[yii\web\Response::formatters
]
] プロパティを構成することで、これらのフォーマッタをカスタマイズしたり、
新しいフォーマッタを追加したり
することが出来ます。
*
[
[yii\web\Response::FORMAT_HTML|HTML
]
]:
[
[yii\web\HtmlResponseFormatter
]
] によって実装
*
[
[yii\web\Response::FORMAT_XML|XML
]
]:
[
[yii\web\XmlResponseFormatter
]
] によって実装
...
...
@@ -177,7 +176,7 @@ public function actionOld()
上記のコードでは、アクションメソッドが
`redirect()`
メソッドの結果を返しています。
前に説明したように、アクションメソッドによって返されるレスポンスオブジェクトが、エンドユーザに送信されるレスポンスとして使用されることになります。
アクションメソッド以外の場所では、
[
[yii\web\Response::redirect()
]
] を直接に呼び出し、メソッドチェーンで
[
[yii\web\Response::send()
]
] メソッドを呼んで、レスポンスに余計なコンテントが追加されないことを保証
すべきです
。
アクションメソッド以外の場所では、
[
[yii\web\Response::redirect()
]
] を直接に呼び出し、メソッドチェーンで
[
[yii\web\Response::send()
]
] メソッドを呼んで、レスポンスに余計なコンテントが追加されないことを保証
しなければなりません
。
```
php
\Yii
::
$app
->
response
->
redirect
(
'http://example.com/new'
,
301
)
->
send
();
...
...
@@ -191,7 +190,7 @@ public function actionOld()
この問題を解決するために、
[
[yii\web\Response::redirect()
]
] メソッドは
`X-Redirect`
ヘッダにリダイレクト先 URL を値としてセットします。
そして、クライアントサイドで、このヘッダの値を読み、それに応じてブラウザをリダイレクトする JavaScript を書くことが出来ます。
> Info|情報: Yii には `yii.js` という JavaScript ファイルが付
い
ています。
> Info|情報: Yii には `yii.js` という JavaScript ファイルが付
属し
ています。
これは、よく使われる一連の JavaScript 機能を提供するもので、その中には
`X-Redirect`
ヘッダに基づくブラウザのリダイレクトも含まれています。
従って、あなたが (
[
[yii\web\YiiAsset
]
] アセットバンドルを登録して) この JavaScript ファイルを使うつもりなら、AJAX のリダイレクトをサポートするためには、何も書く必要がなくなります。
...
...
@@ -216,7 +215,7 @@ public function actionDownload()
}
```
ファイル送信メソッドをアクションメソッド以外の場所で呼ぶ場合は、その後で
[
[yii\web\Response::send()
]
] メソッドも呼んで、レスポンスに余計なコンテントが追加されないことを保証
すべきです
。
ファイル送信メソッドをアクションメソッド以外の場所で呼ぶ場合は、その後で
[
[yii\web\Response::send()
]
] メソッドも呼んで、レスポンスに余計なコンテントが追加されないことを保証
しなければなりません
。
```
php
\Yii
::
$app
->
response
->
sendFile
(
'path/to/file.txt'
)
->
send
();
...
...
@@ -254,5 +253,5 @@ public function actionDownload()
[
[yii\web\Response::send()
]
] メソッドが一度呼び出された後では、このメソッドに対する更なる呼び出しは無視されます。
このことは、いったんレスポンスが送出された後では、それにコンテントを追加することは出来なくなる、ということを意味します。
ごらんのように、
the
[
[yii\web\Response::send()
]
] メソッドはいくつかの有用なイベントをトリガします。
ごらんのように、
[
[yii\web\Response::send()
]
] メソッドはいくつかの有用なイベントをトリガします。
これらのイベントに反応することによって、レスポンスを調整したり修飾したりすることが出来ます。
docs/guide-ja/runtime-routing.md
View file @
84976bd7
This diff is collapsed.
Click to expand it.
docs/guide-ja/runtime-sessions-cookies.md
View file @
84976bd7
セッションとクッキー
====================
セッションとクッキーは、データが複数のユーザリクエストを超
えて持続することを可能にします。
セッションとクッキーは、データが複数回のユーザリクエストに
またがって持続することを可能にします。
素の PHP では、それぞれ、グローバル変数
`$_SESSION`
と
`$_COOKIE`
によってアクセスすることが出来ます。
Yii はセッションとクッキーをオブジェクトとしてカプセル化し、オブジェクト指向の流儀でアクセスできるようにするとともに、有用な機能強化を追加しています。
...
...
@@ -42,27 +42,27 @@ $session->destroy();
```
php
$session
=
Yii
::
$app
->
session
;
// セッション変数を取得する。次の三つの用法は同義。
// セッション変数を取得する。次の三つの用法は等価。
$language
=
$session
->
get
(
'language'
);
$language
=
$session
[
'language'
];
$language
=
isset
(
$_SESSION
[
'language'
])
?
$_SESSION
[
'language'
]
:
null
;
// セッション変数を設定する。次の三つの用法は同義。
// セッション変数を設定する。次の三つの用法は等価。
$session
->
set
(
'language'
,
'en-US'
);
$session
[
'language'
]
=
'en-US'
;
$_SESSION
[
'language'
]
=
'en-US'
;
// セッション変数を削除する。次の三つの用法は同義。
// セッション変数を削除する。次の三つの用法は等価。
$session
->
remove
(
'language'
);
unset
(
$session
[
'language'
]);
unset
(
$_SESSION
[
'language'
]);
// セッション変数が存在するかどうかをチェックする。次の三つの用法は同義。
// セッション変数が存在するかどうかをチェックする。次の三つの用法は等価。
if
(
$session
->
has
(
'language'
))
...
if
(
isset
(
$session
[
'language'
]))
...
if
(
isset
(
$_SESSION
[
'language'
]))
...
// 全てのセッション変数をたどる。次の二つの用法は同義。
// 全てのセッション変数をたどる。次の二つの用法は等価。
foreach
(
$session
as
$name
=>
$value
)
...
foreach
(
$_SESSION
as
$name
=>
$value
)
...
```
...
...
@@ -116,7 +116,7 @@ $session['captcha.lifetime'] = 3600;
```
パフォーマンスとコードの可読性を高めるためには、最後の回避策を推奨します。
すなわち、配列を一つのセッション変数として保存する代りに、配列の個々の要素を他の要素と同じキー接頭辞を共有する一つのセッション変数として保存することです。
すなわち、配列を一つのセッション変数として保存する代りに、配列の個々の要素を他の要素と同じキー接頭辞を共有する一個ずつのセッション変数として保存することです。
### カスタムセッションストレージ <span id="custom-session-storage"></span>
...
...
@@ -133,7 +133,7 @@ Yii 縺ッ縲√∪縺溘√&縺セ縺悶∪縺ェ繧サ繝す繝ァ繝ウ繧ケ繝医Ξ繝シ繧ク繧貞ョ溯」☆繧倶
その結果として、セッションを使用するアプリケーションコードを修正することなしに、セッションストレージクラスを切り替えることが出来ます。
> Note|注意: カスタムセッションストレージを使っているときに `$_SESSION` を通じてセッションデータにアクセスしたい場合は、セッションが [[yii\web\Session::open()]] によって既に開始されていることを確認しなければなりません。
これは、カスタムセッションストレージのハンドラが、このメソッドの中で登録される
からです。
これは、カスタムセッションストレージのハンドラは、この
`open()`
メソ
ッドの中で登録されるからです。
これらのコンポーネントクラスの構成方法と使用方法については、それらの API ドキュメントを参照してください。
下記の例は、アプリケーションの構成情報において、データベーステーブルをセッションストレージとして使うために
[
[yii\web\DbSession
]
] を構成する方法を示すものです。
...
...
@@ -223,7 +223,7 @@ $alerts = $session->getFlash('alerts');
Yii は個々のクッキーを
[
[yii\web\Cookie
]
] のオブジェクトとして表します。
[
[yii\web\Request
]
] と
[
[yii\web\Response
]
] は、ともに、
`cookies`
という名前のプロパティによって、クッキーのコレクションを保持します。
後者のクッキーコレクションはリクエストの中で送信されたクッキーを表し、一方、後者のクッキ
ーコレクションは、ユーザに送信されることになるクッキーを表します。
後者のクッキーコレクションはリクエストの中で送信されてきたクッキーを表し、一方、後者のク
ッキーコレクションは、これからユーザに送信されるクッキーを表します。
### クッキーを読み出す <span id="reading-cookies"></span>
...
...
@@ -288,9 +288,9 @@ unset($cookies['language']);
アプリケーションは、サインを見て、クッキーがクライアントサイドで修正されたかどうかを知ることが出来ます。
もし、修正されていれば、そのクッキーは
`request`
コンポーネントの
[
[yii\web\Request::cookies|クッキーコレクション
]
] からはアクセスすることが出来なくなります。
> Note|注意: クッキー検証はクッキーの値
が修正されるのを防止するだけです。
クッキーが検証に失敗した場合でも、
`$_COOKIE`
を通じてそれにアクセスすることは引き続
いて可能です。
これは、サードパーティのライブラリが、クッキー検証を含まない、ライブラリ自体の方法でクッキーを操
作し得るためです。
> Note|注意: クッキー検証は値が修正され
たクッキーの読み込みを防止するだけです。
検証に失敗した場合でも、
`$_COOKIE`
を通じてそのクッキーにアクセスすることは引
き続いて可能です。
これは、サードパーティのライブラリが、クッキー検証を含まない独自の方法でクッキーを操作することが
出来るようにするするためです。
クッキー検証はデフォルトで有効になっています。
[
[yii\web\Request::enableCookieValidation
]
] プロパティを false に設定することによって無効にすることが出来ますが、無効にしないことを強く推奨します。
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment