7
7
8
8
namespace Zend \View \Helper ;
9
9
10
- use Zend \Mvc \Controller \Plugin \FlashMessenger as PluginFlashMessenger ;
10
+ use Zend \Mvc \Controller \Plugin \FlashMessenger as V2PluginFlashMessenger ;
11
+ use Zend \Mvc \Plugin \FlashMessenger \FlashMessenger as PluginFlashMessenger ;
12
+ use Zend \View \Exception \InvalidArgumentException ;
11
13
12
14
/**
13
15
* Helper to proxy the plugin flash messenger
14
16
*
15
17
* Duck-types against Zend\I18n\Translator\TranslatorAwareInterface.
18
+ *
19
+ * @deprecated This helper will be removed in version 3.0 of this component.
20
+ * At that time, it will be available in zendframework/zend-mvc-plugin-flashmessenger.
16
21
*/
17
22
class FlashMessenger extends AbstractHelper
18
23
{
@@ -21,14 +26,16 @@ class FlashMessenger extends AbstractHelper
21
26
/**
22
27
* Default attributes for the open format tag
23
28
*
29
+ * @todo For version 3, have the keys reference the class constants in the
30
+ * FlashMessenger plugin.
24
31
* @var array
25
32
*/
26
33
protected $ classMessages = [
27
- PluginFlashMessenger:: NAMESPACE_INFO => 'info ' ,
28
- PluginFlashMessenger:: NAMESPACE_ERROR => 'error ' ,
29
- PluginFlashMessenger:: NAMESPACE_SUCCESS => 'success ' ,
30
- PluginFlashMessenger:: NAMESPACE_DEFAULT => 'default ' ,
31
- PluginFlashMessenger:: NAMESPACE_WARNING => 'warning ' ,
34
+ ' info ' => 'info ' ,
35
+ ' error ' => 'error ' ,
36
+ ' success ' => 'success ' ,
37
+ ' default ' => 'default ' ,
38
+ ' warning ' => 'warning ' ,
32
39
];
33
40
34
41
/**
@@ -57,15 +64,15 @@ class FlashMessenger extends AbstractHelper
57
64
/**
58
65
* Flash messenger plugin
59
66
*
60
- * @var PluginFlashMessenger
67
+ * @var V2PluginFlashMessenger| PluginFlashMessenger
61
68
*/
62
69
protected $ pluginFlashMessenger ;
63
70
64
71
/**
65
72
* Returns the flash messenger plugin controller
66
73
*
67
74
* @param string|null $namespace
68
- * @return FlashMessenger|PluginFlashMessenger
75
+ * @return FlashMessenger|V2PluginFlashMessenger| PluginFlashMessenger
69
76
*/
70
77
public function __invoke ($ namespace = null )
71
78
{
@@ -98,7 +105,7 @@ public function __call($method, $argv)
98
105
* @param null|bool $autoEscape
99
106
* @return string
100
107
*/
101
- public function render ($ namespace = PluginFlashMessenger:: NAMESPACE_DEFAULT , array $ classes = [], $ autoEscape = null )
108
+ public function render ($ namespace = ' default ' , array $ classes = [], $ autoEscape = null )
102
109
{
103
110
$ flashMessenger = $ this ->getPluginFlashMessenger ();
104
111
$ messages = $ flashMessenger ->getMessagesFromNamespace ($ namespace );
@@ -113,7 +120,7 @@ public function render($namespace = PluginFlashMessenger::NAMESPACE_DEFAULT, arr
113
120
* @param bool|null $autoEscape
114
121
* @return string
115
122
*/
116
- public function renderCurrent ($ namespace = PluginFlashMessenger:: NAMESPACE_DEFAULT , array $ classes = [], $ autoEscape = null )
123
+ public function renderCurrent ($ namespace = ' default ' , array $ classes = [], $ autoEscape = null )
117
124
{
118
125
$ flashMessenger = $ this ->getPluginFlashMessenger ();
119
126
$ messages = $ flashMessenger ->getCurrentMessagesFromNamespace ($ namespace );
@@ -130,7 +137,7 @@ public function renderCurrent($namespace = PluginFlashMessenger::NAMESPACE_DEFAU
130
137
* @return string
131
138
*/
132
139
protected function renderMessages (
133
- $ namespace = PluginFlashMessenger:: NAMESPACE_DEFAULT ,
140
+ $ namespace = ' default ' ,
134
141
array $ messages = [],
135
142
array $ classes = [],
136
143
$ autoEscape = null
@@ -144,7 +151,7 @@ protected function renderMessages(
144
151
if (isset ($ this ->classMessages [$ namespace ])) {
145
152
$ classes = $ this ->classMessages [$ namespace ];
146
153
} else {
147
- $ classes = $ this ->classMessages [PluginFlashMessenger:: NAMESPACE_DEFAULT ];
154
+ $ classes = $ this ->classMessages [' default ' ];
148
155
}
149
156
$ classes = [$ classes ];
150
157
}
@@ -282,24 +289,41 @@ public function getMessageSeparatorString()
282
289
/**
283
290
* Set the flash messenger plugin
284
291
*
285
- * @param PluginFlashMessenger $pluginFlashMessenger
292
+ * @param V2PluginFlashMessenger| PluginFlashMessenger $pluginFlashMessenger
286
293
* @return FlashMessenger
294
+ * @throws InvalidArgumentException for an invalid $pluginFlashMessenger
287
295
*/
288
- public function setPluginFlashMessenger (PluginFlashMessenger $ pluginFlashMessenger )
296
+ public function setPluginFlashMessenger ($ pluginFlashMessenger )
289
297
{
298
+ if (! $ pluginFlashMessenger instanceof V2PluginFlashMessenger
299
+ && ! $ pluginFlashMessenger instanceof PluginFlashMessenger
300
+ ) {
301
+ throw new InvalidArgumentException (sprintf (
302
+ '%s expects either a %s or %s instance; received %s ' ,
303
+ __METHOD__ ,
304
+ V2PluginFlashMessenger::class,
305
+ PluginFlashMessenger::class,
306
+ (is_object ($ pluginFlashMessenger ) ? get_class ($ pluginFlashMessenger ) : gettype ($ pluginFlashMessenger ))
307
+ ));
308
+ }
309
+
290
310
$ this ->pluginFlashMessenger = $ pluginFlashMessenger ;
291
311
return $ this ;
292
312
}
293
313
294
314
/**
295
315
* Get the flash messenger plugin
296
316
*
297
- * @return PluginFlashMessenger
317
+ * @return V2PluginFlashMessenger| PluginFlashMessenger
298
318
*/
299
319
public function getPluginFlashMessenger ()
300
320
{
301
321
if (null === $ this ->pluginFlashMessenger ) {
302
- $ this ->setPluginFlashMessenger (new PluginFlashMessenger ());
322
+ $ this ->setPluginFlashMessenger (
323
+ class_exists (PluginFlashMessenger::class)
324
+ ? new PluginFlashMessenger ()
325
+ : new V2PluginFlashMessenger ()
326
+ );
303
327
}
304
328
305
329
return $ this ->pluginFlashMessenger ;
0 commit comments