[BUGFIX] InvalidArgumentException in PaginateViewHelper 63/46463/3
authorPatrick Schriner <patrick.schriner@diemedialen.de>
Wed, 3 Feb 2016 14:52:33 +0000 (15:52 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Sat, 13 Feb 2016 14:36:07 +0000 (15:36 +0100)
The argument validation of Standalone Fluids AbstractViewHelper
fails for methods defining arguments with multiple types, like
@param QueryResultInterface|ObjectStorage|array.

To solve this, the corresponding argument definition of the argument
$objects in the PaginateViewHelper has been changed to mixed.
Type validation of the $objects argument is done inside
the corresponding method.

Change-Id: I2f0a36e0cdb36657a96636b5c1af1def76b8b775
Resolves: #73105
Related: #73048
Releases: master
Reviewed-on: https://review.typo3.org/46463
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/fluid/Classes/ViewHelpers/Widget/PaginateViewHelper.php

index ad69886..aeb0c49 100644 (file)
@@ -63,13 +63,17 @@ class PaginateViewHelper extends AbstractWidgetViewHelper
     }
 
     /**
-     * @param QueryResultInterface|ObjectStorage|array $objects
+     * @param mixed $objects
      * @param string $as
      * @param array $configuration
      * @return string
+     * @throws \UnexpectedValueException
      */
     public function render($objects, $as, array $configuration = array('itemsPerPage' => 10, 'insertAbove' => false, 'insertBelow' => true, 'maximumNumberOfLinks' => 99))
     {
+        if (!($objects instanceof QueryResultInterface || $objects instanceof ObjectStorage || is_array($objects))) {
+            throw new \UnexpectedValueException('Supplied file object type ' . get_class($objects) . ' must be QueryResultInterface or ObjectStorage or be an array.', 1454510731);
+        }
         return $this->initiateSubRequest();
     }
 }