teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文章表現を修正

2016/06/03 13:26

投稿

sounisi5011
sounisi5011

スコア697

answer CHANGED
@@ -58,7 +58,7 @@
58
58
  ---
59
59
 
60
60
  Slimの[Slim/Handlers/NotFound.php](https://github.com/slimphp/Slim/blob/3.x/Slim/Handlers/NotFound.php#L54-L59)では、レスポンスの書き換えをおこなうコードを以下のように実装しています。
61
- 変数`$output`に、上書きするレスポンスの文字列が格納されています。
61
+ 変数`$output`に、レスポンスのbodyを上書きする文字列が格納されています。
62
62
 
63
63
  ```php
64
64
  $body = new Body(fopen('php://temp', 'r+'));
@@ -68,9 +68,9 @@
68
68
  ->withBody($body);
69
69
  ```
70
70
 
71
- このコードを簡単に説明すると、`fopen('php://temp', 'r+')`でストリームを生成して`Body`クラスの引数に渡した後、
71
+ このコードを簡単に説明すると、`fopen('php://temp', 'r+')`でストリームを生成して`Slim\Http\Body`クラスの引数に渡した後、
72
72
  `write`メソッドで変数`$output`の内容をbodyとして書き込んでいます。
73
- レスポンスの書き換えはこれをパクりました。
73
+ レスポンスのbodyの書き換えはこれをパクりました。
74
74
 
75
75
  ```php
76
76
  $body = new Body(fopen('php://temp', 'r+'));
@@ -92,15 +92,16 @@
92
92
  $request = $request->withBody($body);
93
93
  ```
94
94
 
95
- (ストリームとして使うなら、`r+`も`w+`も変わらないと思いますが…こあたりにはあまり詳しくないので、確証を持って言い切ること出来ません…)
95
+ (ストリームとして使うなら、`r+`も`w+`も変わらないと思いますが、ストリーム関係動作にはあまり詳しくないので、確証を持って「`r+`も`w+`も同じだ」と言い切ること出来ません…)
96
96
 
97
97
  ---
98
98
 
99
99
  なお、肝心なことですが、Slimが採用している[PSR-7](http://www.php-fig.org/psr/psr-7/)の`ServerRequestInterface`や`ResponseInterface`は不変オブジェクトです。
100
- `StreamInterface`を除き、メソッドを実行しただけではオブジェクトそのものの設定値が変化せず、そのメソッドの返り値である「設定値が変化したオブジェクト」を利用しなくてはなりません。
100
+ `StreamInterface`(`getBody`メソッドで取得できるオブジェクト)を除き、メソッドを実行しただけではオブジェクトそのものの状態(オブジェクトのが変化せず、そのメソッドの返り値である「状態が変化したオブジェクト」を利用しなくてはなりません。
101
101
 
102
102
  このため、`withBody`などのメソッドが返す値のオブジェクトを次に渡す必要があります。
103
+ このコードでは以下のように変数に再代入して次に渡しています。
103
- このコードでは以下のように変数に再代入していますが、これを忘れると**body上書きされません**。
104
+ 誤って再代入を忘れると**body上書きされません**。
104
105
 
105
106
  ```php
106
107
  // 正しい記述