[BUGFIX] FlashMessageQueue PHP strict warning 97/23197/2
authorChristian Kuhn <lolli@schwarzbu.ch>
Sun, 18 Aug 2013 13:50:54 +0000 (15:50 +0200)
committerWouter Wolters <typo3@wouterwolters.nl>
Tue, 20 Aug 2013 18:10:04 +0000 (20:10 +0200)
FlashMessageQueue exends \SplQueue and overwrites enqueue($value).
In \SplQueue enqueue() has no type hint on $value, but
FlashMessageQueue adds a type hint to FlashMessage. This raises
a PHP strict warning.

Solution is to remove the type hint and add an exception instead
if given argument is not an instance of FlashMessage.

Change-Id: I882aab33a55d84de6614a45c6cc045223adba0cd
Resolves: #51159
Releases: 6.2, 6.1
Reviewed-on: https://review.typo3.org/23197
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
typo3/sysext/core/Classes/Messaging/FlashMessageQueue.php

index 33ae8cf..0910007 100644 (file)
@@ -56,7 +56,13 @@ class FlashMessageQueue extends \SplQueue {
         * @param \TYPO3\CMS\Core\Messaging\FlashMessage $message Instance of \TYPO3\CMS\Core\Messaging\FlashMessage, representing a message
         * @return void
         */
-       public function enqueue(\TYPO3\CMS\Core\Messaging\FlashMessage $message) {
+       public function enqueue($message) {
+               if (!($message instanceof FlashMessage)) {
+                       throw new \TYPO3\CMS\Core\Exception(
+                               'FlashMessageQueue::enqueue() expects an object of type \TYPO3\CMS\Core\Messaging\FlashMessage but got type "' . (is_object($message) ? get_class($message) : gettype($message)) . '"',
+                               1376833554
+                       );
+               }
                if ($message->isSessionMessage()) {
                        $this->addFlashMessageToSession($message);
                } else {
@@ -273,4 +279,4 @@ class FlashMessageQueue extends \SplQueue {
        }
 }
 
-?>
\ No newline at end of file
+?>