[TASK] Move arguments to initializeArguments() in ResourceVH in ext:fluid 75/48875/3
authorRoberto Torresani <erreti@gmail.com>
Sun, 10 Jul 2016 16:02:25 +0000 (18:02 +0200)
committerAndreas Fernandez <typo3@scripting-base.de>
Tue, 12 Jul 2016 16:09:40 +0000 (18:09 +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: #77010
Releases: master
Change-Id: I53b08bcf4da1b9b319cbe9411c361db9894e5644
Reviewed-on: https://review.typo3.org/48875
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Anna Färber <anna.faerber@dkd.de>
Tested-by: Anna Färber <anna.faerber@dkd.de>
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Tested-by: Andreas Fernandez <typo3@scripting-base.de>
typo3/sysext/fluid/Classes/ViewHelpers/Uri/ResourceViewHelper.php

index 7f08095..1b6af51 100644 (file)
@@ -32,16 +32,31 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
 class ResourceViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
 {
     /**
+     * Initialize arguments
+     *
+     * @return void
+     * @api
+     */
+    public function initializeArguments()
+    {
+        parent::initializeArguments();
+        $this->registerArgument('path', 'string', 'The path and filename of the resource (relative to Public resource directory of the extension).', true);
+        $this->registerArgument('extensionName', 'string', 'Target extension name. If not set, the current extension name will be used');
+        $this->registerArgument('absolute', 'bool', 'If set, an absolute URI is rendered', false, false);
+    }
+
+    /**
      * Render the URI to the resource. The filename is used from child content.
      *
-     * @param string $path The path and filename of the resource (relative to Public resource directory of the extension).
-     * @param string $extensionName Target extension name. If not set, the current extension name will be used
-     * @param bool $absolute If set, an absolute URI is rendered
      * @return string The URI to the resource
      * @api
      */
-    public function render($path, $extensionName = null, $absolute = false)
+    public function render()
     {
+        $path = $this->arguments['path'];
+        $extensionName = $this->arguments['extensionName'];
+        $absolute = $this->arguments['absolute'];
+
         return static::renderStatic(
             array(
                 'path' => $path,