[TASK] Move arguments to initializeArguments() in PaginateVH in ext:fluid 03/49003/3
authorRoberto Torresani <erreti@gmail.com>
Sat, 16 Jul 2016 19:12:51 +0000 (21:12 +0200)
committerSusanne Moog <typo3@susannemoog.de>
Tue, 19 Jul 2016 07:21:54 +0000 (09:21 +0200)
Move the argument registrations away from the render() method
to initializeArguments(), to prevent any errors with PHP7 and
subclassed ViewHelpers if/when render() method signatures change.

Resolves: #77126
Releases: master
Change-Id: I97bef643845063a6cbda8d479491a23c73358125
Reviewed-on: https://review.typo3.org/49003
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Joerg Boesche <typo3@joergboesche.de>
Tested-by: Joerg Boesche <typo3@joergboesche.de>
Reviewed-by: Susanne Moog <typo3@susannemoog.de>
Tested-by: Susanne Moog <typo3@susannemoog.de>
typo3/sysext/fluid/Classes/ViewHelpers/Widget/PaginateViewHelper.php

index aeb0c49..48ce27d 100644 (file)
@@ -63,14 +63,27 @@ class PaginateViewHelper extends AbstractWidgetViewHelper
     }
 
     /**
-     * @param mixed $objects
-     * @param string $as
-     * @param array $configuration
+     * Initialize arguments.
+     *
+     * @api
+     * @throws \TYPO3Fluid\Fluid\Core\ViewHelper\Exception
+     */
+    public function initializeArguments()
+    {
+        parent::initializeArguments();
+        $this->registerArgument('objects', 'mixed', 'Object', true);
+        $this->registerArgument('as', 'string', 'as', true);
+        $this->registerArgument('configuration', 'array', 'configuration', false, array('itemsPerPage' => 10, 'insertAbove' => false, 'insertBelow' => true, 'maximumNumberOfLinks' => 99));
+    }
+
+    /**
      * @return string
      * @throws \UnexpectedValueException
      */
-    public function render($objects, $as, array $configuration = array('itemsPerPage' => 10, 'insertAbove' => false, 'insertBelow' => true, 'maximumNumberOfLinks' => 99))
+    public function render()
     {
+        $objects = $this->arguments['objects'];
+
         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);
         }