Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
lib
unicaen
app
Commits
10a09b91
Commit
10a09b91
authored
Dec 19, 2014
by
Bertrand Gauthier
Browse files
Extraction de MessageAwareInterface et de MessageAwareTrait dans l'aide de vue Messenger.
parent
1e58dce1
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/UnicaenApp/Traits/MessageAwareInterface.php
0 → 100644
View file @
10a09b91
<?php
namespace
UnicaenApp\Traits
;
/**
*
*
* @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
*/
interface
MessageAwareInterface
{
const
INFO
=
'info'
;
const
SUCCESS
=
'success'
;
const
WARNING
=
'warning'
;
const
ERROR
=
'danger'
;
/**
* Spécifie les messages courants (remplaçant les messages existants).
*
* @param string|array $messages
* @return self
*/
public
function
setMessages
(
$messages
);
/**
* Spécifie l'unique message courant.
*
* @param string $message Message
* @param string $severity Ex: self::INFO
* @return self
*/
public
function
setMessage
(
$message
,
$severity
=
null
);
/**
* Indique si cette aide de vue contient des messages actuellement.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: self::INFO
* @return bool
*/
public
function
hasMessages
(
$severity
=
null
);
/**
* Retourne les messages courants.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: self::INFO
* @return array
*/
public
function
getMessages
(
$severity
=
null
);
/**
* Ajoute un message.
*
* @param string $message Message
* @param string $severity Sévérité, ex: self::INFO
* @return self
*/
public
function
addMessage
(
$message
,
$severity
=
null
);
/**
* Ajoute plusieurs messages.
*
* @param array $messages [Sévérité => Message]
* @return self
*/
public
function
addMessages
(
$messages
);
/**
* Supprime tous les messages courants.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: self::INFO
* @return self
*/
public
function
clearMessages
(
$severity
=
null
);
}
\ No newline at end of file
src/UnicaenApp/Traits/MessageAwareTrait.php
0 → 100644
View file @
10a09b91
<?php
namespace
UnicaenApp\Traits
;
/**
*
*
* @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
*/
trait
MessageAwareTrait
{
/**
* @var array
*/
protected
$messages
=
[];
/**
* Spécifie les messages courants (remplaçant les messages existants).
*
* @param string|array $messages
* @return self
*/
public
function
setMessages
(
$messages
)
{
$this
->
messages
=
array
();
foreach
((
array
)
$messages
as
$severity
=>
$message
)
{
$this
->
addMessage
(
$message
,
$severity
);
}
return
$this
;
}
/**
* Spécifie l'unique message courant.
*
* @param string $message Message
* @param string $severity Ex: MessageAwareInterface::INFO
* @return self
*/
public
function
setMessage
(
$message
,
$severity
=
null
)
{
return
$this
->
setMessages
(
array
(
$severity
=>
$message
));
}
/**
* Indique si cette aide de vue contient des messages actuellement.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: MessageAwareInterface::INFO
* @return bool
*/
public
function
hasMessages
(
$severity
=
null
)
{
return
(
boolean
)
$this
->
getMessages
(
$severity
);
}
/**
* Retourne les messages courants.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: MessageAwareInterface::INFO
* @return array
*/
public
function
getMessages
(
$severity
=
null
)
{
if
(
$severity
&&
array_key_exists
(
$severity
,
$this
->
messages
))
{
return
$this
->
messages
[
$severity
];
}
return
$this
->
messages
;
}
/**
* Retourne les messages courants en une seule chaîne de caractères.
*
* @param string $glue Séparateur à utiliser
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: MessageAwareInterface::INFO
* @return string
*/
public
function
getMessage
(
$glue
,
$severity
=
null
)
{
$messages
=
$this
->
messages
;
if
(
$severity
&&
array_key_exists
(
$severity
,
$this
->
messages
))
{
$messages
=
$this
->
messages
[
$severity
];
}
return
implode
(
$glue
,
\
UnicaenApp\Util
::
extractArrayLeafNodes
(
$messages
));
}
/**
* Ajoute un message.
*
* @param string $message Message
* @param string $severity Sévérité, ex: MessageAwareInterface::INFO
* @return self
*/
public
function
addMessage
(
$message
,
$severity
=
null
)
{
if
(
!
$severity
||
!
is_string
(
$severity
))
{
$severity
=
MessageAwareInterface
::
INFO
;
}
$this
->
messages
[
$severity
][]
=
$message
;
return
$this
;
}
/**
* Ajoute plusieurs messages.
*
* @param array $messages [Sévérité => Message]
* @return self
*/
public
function
addMessages
(
$messages
)
{
foreach
(
$messages
as
$severity
=>
$message
)
{
$this
->
addMessage
(
$message
,
$severity
);
}
return
$this
;
}
/**
* Supprime tous les messages courants.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: MessageAwareInterface::INFO
* @return self
*/
public
function
clearMessages
(
$severity
=
null
)
{
if
(
$severity
&&
array_key_exists
(
$severity
,
$this
->
getMessages
()))
{
$this
->
messages
[
$severity
]
=
array
();
}
else
{
$this
->
messages
=
array
();
}
return
$this
;
}
}
\ No newline at end of file
src/UnicaenApp/View/Helper/Messenger.php
View file @
10a09b91
<?php
namespace
UnicaenApp\View\Helper
;
use
UnicaenApp\Traits\MessageAwareInterface
;
use
UnicaenApp\Traits\MessageAwareTrait
;
use
UnicaenApp\Exception\LogicException
;
use
UnicaenApp\View\Helper\Messenger
;
use
Zend\View\Helper\AbstractHelper
;
...
...
@@ -13,8 +15,10 @@ use Zend\View\Helper\AbstractHelper;
*
* @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr>
*/
class
Messenger
extends
AbstractHelper
class
Messenger
extends
AbstractHelper
implements
MessageAwareInterface
{
use
MessageAwareTrait
;
const
INFO
=
'info'
;
const
SUCCESS
=
'success'
;
const
WARNING
=
'warning'
;
...
...
@@ -27,12 +31,6 @@ class Messenger extends AbstractHelper
self
::
ERROR
=>
array
(
'danger'
,
'exclamation-sign'
),
);
/**
* Messages courants
* @var array
*/
protected
$messages
=
array
();
/**
* Seule sévérité éventuelle à prendre en compte
* @var string
...
...
@@ -156,21 +154,6 @@ class Messenger extends AbstractHelper
return
$this
->
setMessages
(
array
(
$severity
=>
$message
));
}
/**
* Spécifie les messages courants (remplaçant les messages existants).
*
* @param string|array $messages
* @return Messenger
*/
public
function
setMessages
(
$messages
)
{
$this
->
messages
=
array
();
foreach
((
array
)
$messages
as
$severity
=>
$message
)
{
$this
->
addMessage
(
$message
,
$severity
);
}
return
$this
;
}
/**
* Importe les messages courants du FlashMessenger (remplaçant les messages existants).
*
...
...
@@ -184,74 +167,6 @@ class Messenger extends AbstractHelper
return
$this
;
}
/**
* Spécifie l'unique message courant.
*
* @param string $message Message
* @param string $severity Ex: Messenger::INFO
* @return Messenger
*/
public
function
setMessage
(
$message
,
$severity
=
self
::
INFO
)
{
return
$this
->
setMessages
(
array
(
$severity
=>
$message
));
}
/**
* Indique si cette aide de vue contient des messages actuellement.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: Messenger::INFO
* @return bool
*/
public
function
hasMessages
(
$severity
=
null
)
{
return
(
boolean
)
$this
->
getMessages
(
$severity
);
}
/**
* Retourne les messages courants.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: Messenger::INFO
* @return array
*/
public
function
getMessages
(
$severity
=
null
)
{
if
(
$severity
&&
array_key_exists
(
$severity
,
$this
->
messages
))
{
return
$this
->
messages
[
$severity
];
}
return
$this
->
messages
;
}
/**
* Ajoute un message.
*
* @param string $message Message
* @param string $severity Sévérité, ex: Messenger::INFO
* @return Messenger
*/
public
function
addMessage
(
$message
,
$severity
=
self
::
INFO
)
{
if
(
!
$severity
||
!
is_string
(
$severity
))
{
$severity
=
self
::
INFO
;
}
$this
->
messages
[
$severity
][]
=
$message
;
return
$this
;
}
/**
* Ajoute plusieurs messages.
*
* @param array $messages [Sévérité => Message]
* @return Messenger
*/
public
function
addMessages
(
$messages
)
{
foreach
(
$messages
as
$severity
=>
$message
)
{
$this
->
addMessage
(
$message
,
$severity
);
}
return
$this
;
}
/**
* Ajoute les messages courants du FlashMessenger.
*
...
...
@@ -264,23 +179,6 @@ class Messenger extends AbstractHelper
return
$this
;
}
/**
* Supprime tous les messages courants.
*
* @param string $severity Seule sévérité éventuelle à prendre en compte, ex: Messenger::INFO
* @return Messenger
*/
public
function
clearMessages
(
$severity
=
null
)
{
if
(
$severity
&&
array_key_exists
(
$severity
,
$this
->
getMessages
()))
{
$this
->
messages
[
$severity
]
=
array
();
}
else
{
$this
->
messages
=
array
();
}
return
$this
;
}
/**
* Active ou non l'affichage de l'icône.
*
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment