1: <?php
2: /*
3: * Copyright (c) 2015 @trashtoy
4: * https://github.com/trashtoy/
5: *
6: * Permission is hereby granted, free of charge, to any person obtaining a copy of
7: * this software and associated documentation files (the "Software"), to deal in
8: * the Software without restriction, including without limitation the rights to use,
9: * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
10: * Software, and to permit persons to whom the Software is furnished to do so,
11: * subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all
14: * copies or substantial portions of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18: * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19: * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20: * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21: * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22: */
23: /**
24: * PHP class file.
25: * @auhtor trashtoy
26: * @since 2.2.0
27: */
28: namespace Peach\Http;
29:
30: /**
31: * HTTP リクエストおよびレスポンスの Body 部分を表現するクラスです.
32: */
33: class Body
34: {
35: /**
36: * HTTP レスポンスの Body として出力される任意の値です.
37: *
38: * @var mixed
39: */
40: private $value;
41:
42: /**
43: * このオブジェクトの $value にセットされた値を, HTTP レスポンスの Body
44: * として出力される文字列に変換するための BodyRenderer です.
45: *
46: * @var BodyRenderer
47: */
48: private $renderer;
49:
50: /**
51: * 指定された出力対象のデータおよび BodyRenderer から成る Body オブジェクトを構築します.
52: *
53: * @param mixed $value 出力対象のデータ
54: * @param BodyRenderer $renderer 出力対象のデータを HTTP メッセージボディに変換するための BodyRenderer オブジェクト
55: */
56: public function __construct($value, BodyRenderer $renderer)
57: {
58: $this->value = $value;
59: $this->renderer = $renderer;
60: }
61:
62: /**
63: * この Response が返却する値の生データ (内部表現) を返します.
64: *
65: * @return mixed
66: */
67: public function getValue()
68: {
69: return $this->value;
70: }
71:
72: /**
73: * この Body オブジェクトを文字列に変換するための Renderer を返します.
74: *
75: * @return BodyRenderer
76: */
77: public function getRenderer()
78: {
79: return $this->renderer;
80: }
81: }
82: