77
88namespace Zend \View \Helper ;
99
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 ;
1113
1214/**
1315 * Helper to proxy the plugin flash messenger
1416 *
1517 * 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.
1621 */
1722class FlashMessenger extends AbstractHelper
1823{
@@ -21,14 +26,16 @@ class FlashMessenger extends AbstractHelper
2126 /**
2227 * Default attributes for the open format tag
2328 *
29+ * @todo For version 3, have the keys reference the class constants in the
30+ * FlashMessenger plugin.
2431 * @var array
2532 */
2633 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 ' ,
3239 ];
3340
3441 /**
@@ -57,15 +64,15 @@ class FlashMessenger extends AbstractHelper
5764 /**
5865 * Flash messenger plugin
5966 *
60- * @var PluginFlashMessenger
67+ * @var V2PluginFlashMessenger| PluginFlashMessenger
6168 */
6269 protected $ pluginFlashMessenger ;
6370
6471 /**
6572 * Returns the flash messenger plugin controller
6673 *
6774 * @param string|null $namespace
68- * @return FlashMessenger|PluginFlashMessenger
75+ * @return FlashMessenger|V2PluginFlashMessenger| PluginFlashMessenger
6976 */
7077 public function __invoke ($ namespace = null )
7178 {
@@ -98,7 +105,7 @@ public function __call($method, $argv)
98105 * @param null|bool $autoEscape
99106 * @return string
100107 */
101- public function render ($ namespace = PluginFlashMessenger:: NAMESPACE_DEFAULT , array $ classes = [], $ autoEscape = null )
108+ public function render ($ namespace = ' default ' , array $ classes = [], $ autoEscape = null )
102109 {
103110 $ flashMessenger = $ this ->getPluginFlashMessenger ();
104111 $ messages = $ flashMessenger ->getMessagesFromNamespace ($ namespace );
@@ -113,7 +120,7 @@ public function render($namespace = PluginFlashMessenger::NAMESPACE_DEFAULT, arr
113120 * @param bool|null $autoEscape
114121 * @return string
115122 */
116- public function renderCurrent ($ namespace = PluginFlashMessenger:: NAMESPACE_DEFAULT , array $ classes = [], $ autoEscape = null )
123+ public function renderCurrent ($ namespace = ' default ' , array $ classes = [], $ autoEscape = null )
117124 {
118125 $ flashMessenger = $ this ->getPluginFlashMessenger ();
119126 $ messages = $ flashMessenger ->getCurrentMessagesFromNamespace ($ namespace );
@@ -130,7 +137,7 @@ public function renderCurrent($namespace = PluginFlashMessenger::NAMESPACE_DEFAU
130137 * @return string
131138 */
132139 protected function renderMessages (
133- $ namespace = PluginFlashMessenger:: NAMESPACE_DEFAULT ,
140+ $ namespace = ' default ' ,
134141 array $ messages = [],
135142 array $ classes = [],
136143 $ autoEscape = null
@@ -144,7 +151,7 @@ protected function renderMessages(
144151 if (isset ($ this ->classMessages [$ namespace ])) {
145152 $ classes = $ this ->classMessages [$ namespace ];
146153 } else {
147- $ classes = $ this ->classMessages [PluginFlashMessenger:: NAMESPACE_DEFAULT ];
154+ $ classes = $ this ->classMessages [' default ' ];
148155 }
149156 $ classes = [$ classes ];
150157 }
@@ -282,24 +289,41 @@ public function getMessageSeparatorString()
282289 /**
283290 * Set the flash messenger plugin
284291 *
285- * @param PluginFlashMessenger $pluginFlashMessenger
292+ * @param V2PluginFlashMessenger| PluginFlashMessenger $pluginFlashMessenger
286293 * @return FlashMessenger
294+ * @throws InvalidArgumentException for an invalid $pluginFlashMessenger
287295 */
288- public function setPluginFlashMessenger (PluginFlashMessenger $ pluginFlashMessenger )
296+ public function setPluginFlashMessenger ($ pluginFlashMessenger )
289297 {
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+
290310 $ this ->pluginFlashMessenger = $ pluginFlashMessenger ;
291311 return $ this ;
292312 }
293313
294314 /**
295315 * Get the flash messenger plugin
296316 *
297- * @return PluginFlashMessenger
317+ * @return V2PluginFlashMessenger| PluginFlashMessenger
298318 */
299319 public function getPluginFlashMessenger ()
300320 {
301321 if (null === $ this ->pluginFlashMessenger ) {
302- $ this ->setPluginFlashMessenger (new PluginFlashMessenger ());
322+ $ this ->setPluginFlashMessenger (
323+ class_exists (PluginFlashMessenger::class)
324+ ? new PluginFlashMessenger ()
325+ : new V2PluginFlashMessenger ()
326+ );
303327 }
304328
305329 return $ this ->pluginFlashMessenger ;
0 commit comments