Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 /*
|
Chris@0
|
4 * This file is part of the Symfony package.
|
Chris@0
|
5 *
|
Chris@0
|
6 * (c) Fabien Potencier <fabien@symfony.com>
|
Chris@0
|
7 *
|
Chris@0
|
8 * For the full copyright and license information, please view the LICENSE
|
Chris@0
|
9 * file that was distributed with this source code.
|
Chris@0
|
10 */
|
Chris@0
|
11
|
Chris@0
|
12 namespace Symfony\Component\HttpFoundation\Session\Flash;
|
Chris@0
|
13
|
Chris@0
|
14 /**
|
Chris@0
|
15 * FlashBag flash message container.
|
Chris@0
|
16 *
|
Chris@0
|
17 * @author Drak <drak@zikula.org>
|
Chris@0
|
18 */
|
Chris@0
|
19 class FlashBag implements FlashBagInterface
|
Chris@0
|
20 {
|
Chris@0
|
21 private $name = 'flashes';
|
Chris@0
|
22
|
Chris@0
|
23 /**
|
Chris@0
|
24 * Flash messages.
|
Chris@0
|
25 *
|
Chris@0
|
26 * @var array
|
Chris@0
|
27 */
|
Chris@0
|
28 private $flashes = array();
|
Chris@0
|
29
|
Chris@0
|
30 /**
|
Chris@0
|
31 * The storage key for flashes in the session.
|
Chris@0
|
32 *
|
Chris@0
|
33 * @var string
|
Chris@0
|
34 */
|
Chris@0
|
35 private $storageKey;
|
Chris@0
|
36
|
Chris@0
|
37 /**
|
Chris@0
|
38 * Constructor.
|
Chris@0
|
39 *
|
Chris@0
|
40 * @param string $storageKey The key used to store flashes in the session
|
Chris@0
|
41 */
|
Chris@0
|
42 public function __construct($storageKey = '_sf2_flashes')
|
Chris@0
|
43 {
|
Chris@0
|
44 $this->storageKey = $storageKey;
|
Chris@0
|
45 }
|
Chris@0
|
46
|
Chris@0
|
47 /**
|
Chris@0
|
48 * {@inheritdoc}
|
Chris@0
|
49 */
|
Chris@0
|
50 public function getName()
|
Chris@0
|
51 {
|
Chris@0
|
52 return $this->name;
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 public function setName($name)
|
Chris@0
|
56 {
|
Chris@0
|
57 $this->name = $name;
|
Chris@0
|
58 }
|
Chris@0
|
59
|
Chris@0
|
60 /**
|
Chris@0
|
61 * {@inheritdoc}
|
Chris@0
|
62 */
|
Chris@0
|
63 public function initialize(array &$flashes)
|
Chris@0
|
64 {
|
Chris@0
|
65 $this->flashes = &$flashes;
|
Chris@0
|
66 }
|
Chris@0
|
67
|
Chris@0
|
68 /**
|
Chris@0
|
69 * {@inheritdoc}
|
Chris@0
|
70 */
|
Chris@0
|
71 public function add($type, $message)
|
Chris@0
|
72 {
|
Chris@0
|
73 $this->flashes[$type][] = $message;
|
Chris@0
|
74 }
|
Chris@0
|
75
|
Chris@0
|
76 /**
|
Chris@0
|
77 * {@inheritdoc}
|
Chris@0
|
78 */
|
Chris@0
|
79 public function peek($type, array $default = array())
|
Chris@0
|
80 {
|
Chris@0
|
81 return $this->has($type) ? $this->flashes[$type] : $default;
|
Chris@0
|
82 }
|
Chris@0
|
83
|
Chris@0
|
84 /**
|
Chris@0
|
85 * {@inheritdoc}
|
Chris@0
|
86 */
|
Chris@0
|
87 public function peekAll()
|
Chris@0
|
88 {
|
Chris@0
|
89 return $this->flashes;
|
Chris@0
|
90 }
|
Chris@0
|
91
|
Chris@0
|
92 /**
|
Chris@0
|
93 * {@inheritdoc}
|
Chris@0
|
94 */
|
Chris@0
|
95 public function get($type, array $default = array())
|
Chris@0
|
96 {
|
Chris@0
|
97 if (!$this->has($type)) {
|
Chris@0
|
98 return $default;
|
Chris@0
|
99 }
|
Chris@0
|
100
|
Chris@0
|
101 $return = $this->flashes[$type];
|
Chris@0
|
102
|
Chris@0
|
103 unset($this->flashes[$type]);
|
Chris@0
|
104
|
Chris@0
|
105 return $return;
|
Chris@0
|
106 }
|
Chris@0
|
107
|
Chris@0
|
108 /**
|
Chris@0
|
109 * {@inheritdoc}
|
Chris@0
|
110 */
|
Chris@0
|
111 public function all()
|
Chris@0
|
112 {
|
Chris@0
|
113 $return = $this->peekAll();
|
Chris@0
|
114 $this->flashes = array();
|
Chris@0
|
115
|
Chris@0
|
116 return $return;
|
Chris@0
|
117 }
|
Chris@0
|
118
|
Chris@0
|
119 /**
|
Chris@0
|
120 * {@inheritdoc}
|
Chris@0
|
121 */
|
Chris@0
|
122 public function set($type, $messages)
|
Chris@0
|
123 {
|
Chris@0
|
124 $this->flashes[$type] = (array) $messages;
|
Chris@0
|
125 }
|
Chris@0
|
126
|
Chris@0
|
127 /**
|
Chris@0
|
128 * {@inheritdoc}
|
Chris@0
|
129 */
|
Chris@0
|
130 public function setAll(array $messages)
|
Chris@0
|
131 {
|
Chris@0
|
132 $this->flashes = $messages;
|
Chris@0
|
133 }
|
Chris@0
|
134
|
Chris@0
|
135 /**
|
Chris@0
|
136 * {@inheritdoc}
|
Chris@0
|
137 */
|
Chris@0
|
138 public function has($type)
|
Chris@0
|
139 {
|
Chris@0
|
140 return array_key_exists($type, $this->flashes) && $this->flashes[$type];
|
Chris@0
|
141 }
|
Chris@0
|
142
|
Chris@0
|
143 /**
|
Chris@0
|
144 * {@inheritdoc}
|
Chris@0
|
145 */
|
Chris@0
|
146 public function keys()
|
Chris@0
|
147 {
|
Chris@0
|
148 return array_keys($this->flashes);
|
Chris@0
|
149 }
|
Chris@0
|
150
|
Chris@0
|
151 /**
|
Chris@0
|
152 * {@inheritdoc}
|
Chris@0
|
153 */
|
Chris@0
|
154 public function getStorageKey()
|
Chris@0
|
155 {
|
Chris@0
|
156 return $this->storageKey;
|
Chris@0
|
157 }
|
Chris@0
|
158
|
Chris@0
|
159 /**
|
Chris@0
|
160 * {@inheritdoc}
|
Chris@0
|
161 */
|
Chris@0
|
162 public function clear()
|
Chris@0
|
163 {
|
Chris@0
|
164 return $this->all();
|
Chris@0
|
165 }
|
Chris@0
|
166 }
|