Skip to content
This repository was archived by the owner on Jan 31, 2020. It is now read-only.

Commit 71b4ebd

Browse files
committed
Merge branch 'hotfix/78'
Close #79 Close #78 Fixes #77
2 parents eebc58d + 002d3cf commit 71b4ebd

File tree

9 files changed

+191
-101
lines changed

9 files changed

+191
-101
lines changed

.travis.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ cache:
1616
env:
1717
global:
1818
- COMPOSER_ARGS="--no-interaction --ignore-platform-reqs"
19-
- SITE_URL: https://zendframework.github.io/zend-view
20-
- GH_USER_NAME: "Matthew Weier O'Phinney"
21-
- GH_USER_EMAIL: [email protected]
22-
- GH_REF: github.com/zendframework/zend-view.git
19+
- LATEST_DEPS="zendframework/zend-mvc-plugin-flashmessenger zendframework/zend-mvc-i18n zendframework/zend-mvc-console"
20+
- SITE_URL=https://zendframework.github.io/zend-view
21+
- GH_USER_NAME="Matthew Weier O'Phinney"
22+
23+
- GH_REF=github.com/zendframework/zend-view.git
2324
- secure: "kF7z5CxnrD/lsX9sP1+SYLKm1HdT/u1F0xovlyT9fDWrz+X4DBe8Oybzk6UX5HKXQvdhVTfAbHoWhFxFrkcRKrtaEOltk68bYFgnSOYhrK5EhZz6CHqN2j1MtT6FRfdlSOi6OECvCE3wd8nYHixxEviIZyB3L5+H39FOiu5Zi+eJT/myp6IuBO6lQfnSgqKdvuQXlfWSn9VGQJztX6ea2U89eM/TAVWEwbhLAJOsOejkvAy2lvYhIZpvSEkFm9jSp3/JOw8MFljG8UEDZUkpj+zba5/vqzM8thTTbybhAIBF7wNeMNrAeFBnrPz5KDPEQYYG8NG4we6F7GvbevvBz+ej5OJPXx/ulhMiEWKN1qEmQHZ3Gl0kG0O+TgXfqLErbCNn4MLP/K0Avar03m9bvXtaTA5Yqde0rIdspjwdxmKi0OI76UnGETMDyWuXbHkRfhs54sUEOBUdM3dz5lXhlSWPCTlQCgzkVqlgTL5b8b1u7YKpkwJAFSXMhhJBycFCNCfqAy10l2wjgvhXhLgPHle7sSwYR6SMVzkjj59P1UKc2yrxkwl/S7cqrbaeGSGjDv/QVMLtBL3OLqXwIaKy3POF2gQJhFXdrmGzDOADyCbEXVUYve5pQOmT1RdVHaHiT7AmZXEQibR1DW2zzU9eX94XpK9LKzlSzUOtYT8LNNA="
2425

2526
matrix:
@@ -78,6 +79,7 @@ before_install:
7879
- if [[ $EXECUTE_TEST_COVERALLS == 'true' ]]; then composer require --dev --no-update satooshi/php-coveralls ; fi
7980

8081
install:
82+
- if [[ $DEPS == 'latest' ]]; then travis_retry composer require --dev --no-update $COMPOSER_ARGS $LATEST_DEPS ; fi
8183
- if [[ $DEPS == 'latest' ]]; then travis_retry composer update $COMPOSER_ARGS ; fi
8284
- if [[ $DEPS == 'lowest' ]]; then travis_retry composer update --prefer-lowest --prefer-stable $COMPOSER_ARGS ; fi
8385
- travis_retry composer install $COMPOSER_ARGS

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
All notable changes to this project will be documented in this file, in reverse chronological order by release.
44

5-
## 2.8.1 - TBD
5+
## 2.8.1 - 2016-06-30
66

77
### Added
88

@@ -18,7 +18,9 @@ All notable changes to this project will be documented in this file, in reverse
1818

1919
### Fixed
2020

21-
- Nothing.
21+
- [#78](https://github.com/zendframework/zend-view/pull/78) and
22+
[#79](https://github.com/zendframework/zend-view/pull/79) ensure that all
23+
helpers work with both version 2 and version 3 of zend-mvc.
2224

2325
## 2.8.0 - 2016-06-21
2426

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"zendframework/zend-json": "^2.6.1",
3232
"zendframework/zend-log": "^2.7",
3333
"zendframework/zend-modulemanager": "^2.7.1",
34-
"zendframework/zend-mvc": "^2.7",
34+
"zendframework/zend-mvc": "^2.7 || ^3.0",
3535
"zendframework/zend-navigation": "^2.5",
3636
"zendframework/zend-paginator": "^2.5",
3737
"zendframework/zend-permissions-acl": "^2.6",

src/Helper/FlashMessenger.php

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@
77

88
namespace 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
*/
1722
class 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

Comments
 (0)