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.1.0
27: */
28: namespace Peach\DF;
29:
30: /**
31: * {@link http://php.net/manual/function.serialize.php serialize()} と
32: * {@link http://php.net/manual/function.unserialize.php unserialize()}
33: * を利用して, resource 型以外の任意の値を文字列に変換したり,
34: * 文字列から値を復元したりするための Codec です.
35: */
36: class SerializationCodec implements Codec
37: {
38: /**
39: * このクラスはシングルトンです. 直接インスタンス化することは出来ません.
40: */
41: private function __construct() {}
42:
43: /**
44: * このクラスのインスタンスを取得します.
45: * @return SerializationCodec
46: * @codeCoverageIgnore
47: */
48: public static function getInstance()
49: {
50: static $instance = null;
51: if (!isset($instance)) {
52: $instance = new self();
53: }
54: return $instance;
55: }
56:
57: /**
58: * serialize された値から元の値を復元します.
59: *
60: * @param string $text serialize された文字列
61: * @return mixed 復元された値
62: */
63: public function decode($text)
64: {
65: return unserialize($text);
66: }
67:
68: /**
69: * 指定された値を serialize した結果を返します.
70: * @param mixed $var serialize 対象の値
71: * @return string serialize した結果
72: */
73: public function encode($var)
74: {
75: return serialize($var);
76: }
77: }
78: