[TASK] Move arguments to initializeArguments() in DebugVH in ext:fluid 15/49015/3
authorRoberto Torresani <erreti@gmail.com>
Sun, 17 Jul 2016 19:11:02 +0000 (21:11 +0200)
committerSusanne Moog <typo3@susannemoog.de>
Tue, 19 Jul 2016 07:28:32 +0000 (09:28 +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: #77141
Releases: master
Change-Id: Iba1f1d9671eee2e4a0b205c3cf5ef76a7423a007
Reviewed-on: https://review.typo3.org/49015
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/DebugViewHelper.php

index 6df288a..53c09e6 100644 (file)
@@ -54,19 +54,37 @@ class DebugViewHelper extends AbstractViewHelper
     protected $escapeOutput = false;
 
     /**
+     * Initialize arguments.
+     *
+     * @api
+     * @throws \TYPO3Fluid\Fluid\Core\ViewHelper\Exception
+     */
+    public function initializeArguments()
+    {
+        parent::initializeArguments();
+        $this->registerArgument('title', 'string', 'optional custom title for the debug output');
+        $this->registerArgument('maxDepth', 'int', 'Sets the max recursion depth of the dump (defaults to 8). De- or increase the number according to your needs and memory limit.', false, 8);
+        $this->registerArgument('plainText', 'bool', 'If TRUE, the dump is in plain text, if FALSE the debug output is in HTML format.', false, false);
+        $this->registerArgument('ansiColors', 'bool', 'If TRUE, ANSI color codes is added to the plaintext output, if FALSE (default) the plaintext debug output not colored.', false, false);
+        $this->registerArgument('inline', 'bool', 'if TRUE, the dump is rendered at the position of the <f:debug> tag. If FALSE (default), the dump is displayed at the top of the page.', false, false);
+        $this->registerArgument('blacklistedClassNames', 'array', 'An array of class names (RegEx) to be filtered. Default is an array of some common class names.');
+        $this->registerArgument('blacklistedPropertyNames', 'array', 'An array of property names and/or array keys (RegEx) to be filtered. Default is an array of some common property names.');
+    }
+
+    /**
      * A wrapper for \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump().
      *
-     * @param string $title optional custom title for the debug output
-     * @param int $maxDepth Sets the max recursion depth of the dump (defaults to 8). De- or increase the number according to your needs and memory limit.
-     * @param bool $plainText If TRUE, the dump is in plain text, if FALSE the debug output is in HTML format.
-     * @param bool $ansiColors If TRUE, ANSI color codes is added to the plaintext output, if FALSE (default) the plaintext debug output not colored.
-     * @param bool $inline if TRUE, the dump is rendered at the position of the <f:debug> tag. If FALSE (default), the dump is displayed at the top of the page.
-     * @param array $blacklistedClassNames An array of class names (RegEx) to be filtered. Default is an array of some common class names.
-     * @param array $blacklistedPropertyNames An array of property names and/or array keys (RegEx) to be filtered. Default is an array of some common property names.
      * @return string
      */
-    public function render($title = null, $maxDepth = 8, $plainText = false, $ansiColors = false, $inline = false, $blacklistedClassNames = null, $blacklistedPropertyNames = null)
+    public function render()
     {
+        $title = $this->arguments['title'];
+        $maxDepth = $this->arguments['maxDepth'];
+        $plainText = $this->arguments['plainText'];
+        $ansiColors = $this->arguments['ansiColors'];
+        $inline = $this->arguments['inline'];
+        $blacklistedClassNames = $this->arguments['blacklistedClassNames'];
+        $blacklistedPropertyNames = $this->arguments['blacklistedPropertyNames'];
         return static::renderStatic(
             array(
                 'title' => $title,