Skip to content

Commit

Permalink
fix environment translation
Browse files Browse the repository at this point in the history
  • Loading branch information
miyagawa committed Oct 5, 2012
1 parent 005bd88 commit 6ff2e21
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions ja/02_hello_world.md
Expand Up @@ -23,7 +23,7 @@ plackup はアプリケーションをデフォルトのHTTPサーバ HTTP::Serv

### 違うものを表示

Hello Worldはとてもシンプルなものですが、もう少し違ったことをやってみましょう。クライアント情報をPSGI environmentから取得し、表示します。
Hello Worldはとてもシンプルなものですが、もう少し違ったことをやってみましょう。クライアント情報をPSGI環境変数から取得し、表示します。

my $app = sub {
my $env = shift;
Expand All @@ -34,7 +34,7 @@ Hello Worldはとてもシンプルなものですが、もう少し違ったこ
];
};

このコードはクライアントのリモートアドレスをPSGIのenvironmentハッシュから表示します。ローカルホストで起動している場合、値は127.0.0.1 になるはずです。PSGI environmentにはHTTPの接続やクライアントに関する情報、たとえばHTTPヘッダやリクエストパスなどが格納されていて、CGIの環境変数によく似ています。
このコードはクライアントのリモートアドレスをPSGI環境変数ハッシュから表示します。ローカルホストで起動している場合、値は127.0.0.1 になるはずです。PSGI環境変数にはHTTPの接続やクライアントに関する情報、たとえばHTTPヘッダやリクエストパスなどが格納されていて、CGIの環境変数によく似ています。

テキスト以外のデータをファイルから表示するには、以下のようにします。

Expand Down
2 changes: 1 addition & 1 deletion ja/06_convert_cgi_apps_to_psgi.md
Expand Up @@ -23,7 +23,7 @@ Perlでウェブアプリケーションを書く方法として長い間もっ
];
};

`CGI::PSGI->new($env)` はPSGIのenvironmentハッシュを受け取り、CGI.pmのサブクラスであるCGI::PSGIのインスタンスをつくります。`param`, `query_string`といったメソッドは今までどおり動作しますが、CGIの環境変数ではなく、PSGIのenvironmentから値を取得します
`CGI::PSGI->new($env)` はPSGIの環境変数ハッシュを受け取り、CGI.pmのサブクラスであるCGI::PSGIのインスタンスをつくります。`param`, `query_string`といったメソッドは今までどおり動作しますが、CGIの環境変数ではなく、PSGI環境変数から値を取得します

`psgi_header` はCGIの`header`メソッドのように動作するユーティリティで、ステータスコードとHTTPヘッダの配列リファレンスをリストで返します。

Expand Down
2 changes: 1 addition & 1 deletion ja/08_adapting_web_frameworks_to_psgi.md
Expand Up @@ -120,4 +120,4 @@ Day 7ではCGI::ApplicationベースのアプリケーションをCGI::Applicati

### mod_perl 中心のフレームワーク

いくつかのフレームワークは mod_perl のAPIを多用して実装されていることがあり、こうした場合はCGI.pmを置き換えるといったアプローチは利用できません。Apache::RequestのAPIをfake/mock objectなどでモックする必要があるでしょう。WebGUIデベロッパーであるPatric Donelanがmod_perlライクなAPIからPSGIへポートした際の事例を[ブログ記事](http://blog.patspam.com/2009/plack-roundup-at-sf-pm)で紹介しています。実際にリンクされている[モッククラス](http://github.com/pdonelan/webgui/blob/plebgui/lib/WebGUI/Session/Plack.pm) を見てみるのもよいでしょう。
いくつかのフレームワークは mod_perl のAPIを多用して実装されていることがあり、こうした場合はCGI.pmを置き換えるといったアプローチは利用できません。Apache::RequestのAPIをfake/mock objectなどでモックする必要があるでしょう。WebGUIデベロッパーであるPatric Donelanが mod_perl ライクなAPIからPSGIへポートした際の事例を[ブログ記事](http://blog.patspam.com/2009/plack-roundup-at-sf-pm)で紹介しています。実際にリンクされている[モッククラス](http://github.com/pdonelan/webgui/blob/plebgui/lib/WebGUI/Session/Plack.pm) を見てみるのもよいでしょう。
2 changes: 1 addition & 1 deletion ja/13_use_plack_test_to_test_your_application.md
Expand Up @@ -56,7 +56,7 @@ PSGIアプリを作成またはロード([Plack::Util](http://search.cpan.org/pe

### ライブ/モックモード

デフォルトでは`test_psgi`のコールバックはモックHTTPリクエストモードで実行され、受け取ったHTTP::RequestオブジェクトをPSGI environmentハッシュに変換し、PSGIアプリケーションを実行し、レスポンスをHTTP::Responseに変換します。
デフォルトでは`test_psgi`のコールバックはモックHTTPリクエストモードで実行され、受け取ったHTTP::RequestオブジェクトをPSGI環境変数ハッシュに変換し、PSGIアプリケーションを実行し、レスポンスをHTTP::Responseに変換します。

これをライブHTTPモードに変更して実行するには、a) パッケージ変数`$Plack::Test::Impl` または b) 環境変数 `PLACK_TEST_IMPL``Server` に設定します。

Expand Down

0 comments on commit 6ff2e21

Please sign in to comment.