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\Header;
29:
30: use Peach\Http\HeaderField;
31:
32: /**
33: * 存在しない HeaderField をあらわします. (Null Object パターン)
34: *
35: * この HeaderField の getName() および format() は空文字列を返します..
36: */
37: class NoField implements HeaderField
38: {
39: /**
40: * このクラスを直接インスタンス化することはできません.
41: */
42: private function __construct() {}
43:
44: /**
45: * 空文字列を返します.
46: *
47: * @return string 空文字列
48: */
49: public function format()
50: {
51: return "";
52: }
53:
54: /**
55: * 空文字列を返します.
56: *
57: * @return string 空文字列
58: */
59: public function getName()
60: {
61: return "";
62: }
63:
64: /**
65: * このフィールドは値を持たないため null を返します.
66: * @return null
67: */
68: public function getValue()
69: {
70: return null;
71: }
72:
73: /**
74: * このクラスの唯一のインスタンスを返します.
75: * @return NoField 唯一の NoField インスタンス
76: * @codeCoverageIgnore
77: */
78: public static function getInstance()
79: {
80: static $instance = null;
81: if ($instance === null) {
82: $instance = new self();
83: }
84: return $instance;
85: }
86:
87: }
88: