[!!!][TASK] Deprecate various GeneralUtility methods 40/46740/7
authorBenni Mack <benni@typo3.org>
Wed, 17 Feb 2016 08:11:27 +0000 (09:11 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Thu, 3 Mar 2016 20:23:37 +0000 (21:23 +0100)
GeneralUtility::flushOutputBuffers()
GeneralUtility::xmlGetHeaderAttribs()
GeneralUtility::imageMagickCommand()

Parameters 2+3 of
GeneralUtility::getFileAbsFileName()

Resolves: #73516
Releases: master
Change-Id: If0d560d8292cb98eaf1e1d2addc1ce2292c1ef59
Reviewed-on: https://review.typo3.org/46740
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>
15 files changed:
typo3/sysext/backend/Classes/Console/CliRequestHandler.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/core/Classes/Console/CommandRequestHandler.php
typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php
typo3/sysext/core/Classes/Page/PageRenderer.php
typo3/sysext/core/Classes/Resource/OnlineMedia/Processing/PreviewProcessing.php
typo3/sysext/core/Classes/Resource/Processing/LocalPreviewHelper.php
typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
typo3/sysext/core/Classes/Utility/GeneralUtility.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-73516-GeneralUtilitygetFileAbsFileNameAllowsForTypo3MaindirSpecificPaths.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Deprecation-73516-VariousGeneralUtilityMethods.rst [new file with mode: 0644]
typo3/sysext/core/Tests/Unit/Utility/GeneralUtilityTest.php
typo3/sysext/cshmanual/Classes/Domain/Repository/TableManualRepository.php
typo3/sysext/extensionmanager/Classes/Utility/ConfigurationUtility.php
typo3/sysext/extensionmanager/Classes/Utility/UpdateScriptUtility.php

index 671cd01..0c6eb1b 100755 (executable)
@@ -109,10 +109,9 @@ class CliRequestHandler implements RequestHandlerInterface
 
         $this->bootstrap
             ->initializeBackendAuthentication()
-            ->initializeLanguageObject();
-
-        // Make sure output is not buffered, so command-line output and interaction can take place
-        GeneralUtility::flushOutputBuffers();
+            ->initializeLanguageObject()
+            // Make sure output is not buffered, so command-line output and interaction can take place
+            ->endOutputBufferingAndCleanPreviousOutput();
     }
 
     /**
index f4b51f6..47f697d 100644 (file)
@@ -580,7 +580,7 @@ function jumpToUrl(URL) {
         }
         // alternative template for Header and Footer
         if ($this->pageHeaderFooterTemplateFile) {
-            $file = GeneralUtility::getFileAbsFileName($this->pageHeaderFooterTemplateFile, true);
+            $file = GeneralUtility::getFileAbsFileName($this->pageHeaderFooterTemplateFile);
             if ($file) {
                 $this->pageRenderer->setTemplateFile($file);
             }
@@ -1251,7 +1251,7 @@ function jumpToUrl(URL) {
             $filename = $GLOBALS['TBE_STYLES']['htmlTemplates'][$filename];
         }
         if (GeneralUtility::isFirstPartOfStr($filename, 'EXT:')) {
-            $filename = GeneralUtility::getFileAbsFileName($filename, true, true);
+            $filename = GeneralUtility::getFileAbsFileName($filename);
         } elseif (!GeneralUtility::isAbsPath($filename)) {
             $filename = GeneralUtility::resolveBackPath($filename);
         } elseif (!GeneralUtility::isAllowedAbsPath($filename)) {
index daeaf32..2dfd3df 100644 (file)
@@ -79,7 +79,7 @@ class CommandRequestHandler implements RequestHandlerInterface
         }
 
         // Make sure output is not buffered, so command-line output and interaction can take place
-        GeneralUtility::flushOutputBuffers();
+        $this->bootstrap->endOutputBufferingAndCleanPreviousOutput();
         $exitCode = $this->application->run($input, $output);
         exit($exitCode);
     }
index 3bcc909..b213f73 100644 (file)
@@ -2528,7 +2528,7 @@ class GraphicalFunctions
         }
 
         $frame = $this->addFrameSelection ? '[0]' : '';
-        $cmd = GeneralUtility::imageMagickCommand('identify', CommandUtility::escapeShellArgument($imagefile) . $frame);
+        $cmd = CommandUtility::imageMagickCommand('identify', CommandUtility::escapeShellArgument($imagefile) . $frame);
         $returnVal = array();
         CommandUtility::exec($cmd, $returnVal);
         $splitstring = array_pop($returnVal);
@@ -2572,7 +2572,7 @@ class GraphicalFunctions
         // If addFrameSelection is set in the Install Tool, a frame number is added to
         // select a specific page of the image (by default this will be the first page)
         $frame  = $this->addFrameSelection ? '[' . (int)$frame . ']' : '';
-        $cmd = GeneralUtility::imageMagickCommand('convert', $params . ' ' . CommandUtility::escapeShellArgument($input . $frame) . ' ' . CommandUtility::escapeShellArgument($output));
+        $cmd = CommandUtility::imageMagickCommand('convert', $params . ' ' . CommandUtility::escapeShellArgument($input . $frame) . ' ' . CommandUtility::escapeShellArgument($output));
         $this->IM_commands[] = array($output, $cmd);
         $ret = CommandUtility::exec($cmd);
         // Change the permissions of the file
@@ -2604,7 +2604,7 @@ class GraphicalFunctions
                       . CommandUtility::escapeShellArgument($overlay) . ' '
                       . CommandUtility::escapeShellArgument($theMask) . ' '
                       . CommandUtility::escapeShellArgument($output);
-        $cmd = GeneralUtility::imageMagickCommand('combine', $parameters);
+        $cmd = CommandUtility::imageMagickCommand('combine', $parameters);
         $this->IM_commands[] = array($output, $cmd);
         $ret = CommandUtility::exec($cmd);
         // Change the permissions of the file
@@ -2645,7 +2645,7 @@ class GraphicalFunctions
             $temporaryName = dirname($theFile) . '/' . md5(uniqid('', true)) . '.gif';
             // Rename could fail, if a simultaneous thread is currently working on the same thing
             if (@rename($theFile, $temporaryName)) {
-                $cmd = GeneralUtility::imageMagickCommand('convert', '"' . $temporaryName . '" "' . $theFile . '"', $gfxConf['processor_path_lzw']);
+                $cmd = CommandUtility::imageMagickCommand('convert', '"' . $temporaryName . '" "' . $theFile . '"', $gfxConf['processor_path_lzw']);
                 CommandUtility::exec($cmd);
                 unlink($temporaryName);
             }
@@ -2691,7 +2691,7 @@ class GraphicalFunctions
             GeneralUtility::mkdir_deep(PATH_site . 'typo3temp/assets/images/');
         }
         $newFile = PATH_site . 'typo3temp/assets/images/' . md5($theFile . '|' . filemtime($theFile)) . ($output_png ? '.png' : '.gif');
-        $cmd = GeneralUtility::imageMagickCommand(
+        $cmd = CommandUtility::imageMagickCommand(
             'convert', '"' . $theFile . '" "' . $newFile . '"', $GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_path']
         );
         CommandUtility::exec($cmd);
index 5c5615b..5e40822 100644 (file)
@@ -2006,7 +2006,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      */
     protected function getTemplateForPart($part)
     {
-        $templateFile = GeneralUtility::getFileAbsFileName($this->templateFile, true);
+        $templateFile = GeneralUtility::getFileAbsFileName($this->templateFile);
         $template = GeneralUtility::getUrl($templateFile);
         if ($this->removeLineBreaksFromTemplate) {
             $template = strtr($template, array(LF => '', CR => ''));
index de20415..fee4d5d 100644 (file)
@@ -145,7 +145,7 @@ class PreviewProcessing
             $parameters = '-sample ' . $arguments['width'] . 'x' . $arguments['height'] . ' '
                 . $arguments['originalFileName'] . '[0] ' . $arguments['temporaryFileName'];
 
-            $cmd = GeneralUtility::imageMagickCommand('convert', $parameters) . ' 2>&1';
+            $cmd = CommandUtility::imageMagickCommand('convert', $parameters) . ' 2>&1';
             CommandUtility::exec($cmd);
         }
 
index 7346802..3e659ce 100644 (file)
@@ -131,7 +131,7 @@ class LocalPreviewHelper
                 $parameters = '-sample ' . $configuration['width'] . 'x' . $configuration['height'] . ' '
                     . CommandUtility::escapeShellArgument($originalFileName) . '[0] ' . CommandUtility::escapeShellArgument($targetFilePath);
 
-                $cmd = GeneralUtility::imageMagickCommand('convert', $parameters) . ' 2>&1';
+                $cmd = CommandUtility::imageMagickCommand('convert', $parameters) . ' 2>&1';
                 CommandUtility::exec($cmd);
 
                 if (!file_exists($targetFilePath)) {
index a26e36d..4481868 100644 (file)
@@ -878,7 +878,7 @@ class ExtensionManagementUtility
             $iconIdentifier = 'module-' . $moduleSignature;
             $iconRegistry = GeneralUtility::makeInstance(IconRegistry::class);
             $iconRegistry->registerIcon($iconIdentifier, BitmapIconProvider::class, [
-                'source' => GeneralUtility::getFileAbsFileName($moduleConfiguration['icon'], false, true)
+                'source' => GeneralUtility::getFileAbsFileName($moduleConfiguration['icon'])
             ]);
             $moduleConfiguration['iconIdentifier'] = $iconIdentifier;
             unset($moduleConfiguration['icon']);
@@ -956,7 +956,7 @@ class ExtensionManagementUtility
                 $iconIdentifier = 'module-' . $fullModuleSignature;
                 $iconRegistry = GeneralUtility::makeInstance(IconRegistry::class);
                 $iconRegistry->registerIcon($iconIdentifier, BitmapIconProvider::class, [
-                    'source' => GeneralUtility::getFileAbsFileName($moduleConfiguration['icon'], false, true)
+                    'source' => GeneralUtility::getFileAbsFileName($moduleConfiguration['icon'])
                 ]);
                 $moduleConfiguration['iconIdentifier'] = $iconIdentifier;
                 unset($moduleConfiguration['icon']);
index e203e56..b36a3a4 100755 (executable)
@@ -2042,9 +2042,11 @@ class GeneralUtility
      *
      * @param string $xmlData XML data
      * @return array Attributes of the xml prologue (header)
+     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
      */
     public static function xmlGetHeaderAttribs($xmlData)
     {
+        self::logDeprecatedFunction();
         $match = array();
         if (preg_match('/^\\s*<\\?xml([^>]*)\\?\\>/', $xmlData, $match)) {
             return self::get_tag_attributes($match[1]);
@@ -2361,7 +2363,7 @@ class GeneralUtility
         $result = false;
         // Make path absolute
         if (!static::isAbsPath($path)) {
-            $path = static::getFileAbsFileName($path, false);
+            $path = static::getFileAbsFileName($path);
         }
         if (static::isAllowedAbsPath($path)) {
             if (@is_file($path)) {
@@ -3476,18 +3478,20 @@ class GeneralUtility
      * \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr().
      *
      * @param string $filename The input filename/filepath to evaluate
-     * @param bool $onlyRelative If $onlyRelative is set (which it is by default), then only return values relative to the current PATH_site is accepted.
-     * @param bool $relToTYPO3_mainDir If $relToTYPO3_mainDir is set, then relative paths are relative to PATH_typo3 constant - otherwise (default) they are relative to PATH_site
+     * @param bool $_ - obsolete, will be removed in TYPO3 CMS 9
+     * @param bool $_2 - obsolete, will be removed in TYPO3 CMS 9
      * @return string Returns the absolute filename of $filename if valid, otherwise blank string.
      */
-    public static function getFileAbsFileName($filename, $onlyRelative = true, $relToTYPO3_mainDir = false)
+    public static function getFileAbsFileName($filename, $_ = null, $_2 = null)
     {
         if ((string)$filename === '') {
             return '';
         }
-        $relPathPrefix = PATH_site;
-        if ($relToTYPO3_mainDir) {
-            $relPathPrefix = PATH_typo3;
+        if ($_ !== null) {
+            self::deprecationLog('Parameter 2 of GeneralUtility::getFileAbsFileName is obsolete and can be omitted.');
+        }
+        if ($_2 !== null) {
+            self::deprecationLog('Parameter 3 of GeneralUtility::getFileAbsFileName is obsolete and can be omitted.');
         }
 
         // Extension
@@ -3498,17 +3502,18 @@ class GeneralUtility
                 $filename = ExtensionManagementUtility::extPath($extKey) . $local;
             }
         } elseif (!static::isAbsPath($filename)) {
-            // relative. Prepended with $relPathPrefix
-            $filename = $relPathPrefix . $filename;
-        } elseif ($onlyRelative && !static::isFirstPartOfStr($filename, $relPathPrefix)) {
+            // is relative. Prepended with PATH_site
+            $filename = PATH_site . $filename;
+        } elseif (!static::isFirstPartOfStr($filename, PATH_site)) {
             // absolute, but set to blank if not allowed
             $filename = '';
         }
         if ((string)$filename !== '' && static::validPathStr($filename)) {
             // checks backpath.
             return $filename;
+        } else {
+            return '';
         }
-        return '';
     }
 
     /**
@@ -4724,9 +4729,11 @@ class GeneralUtility
      * @param string $parameters The parameters string
      * @param string $path Override the default path (e.g. used by the install tool)
      * @return string Compiled command that deals with ImageMagick & GraphicsMagick
+     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9. - use CommandUtility directly
      */
     public static function imageMagickCommand($command, $parameters, $path = '')
     {
+        self::logDeprecatedFunction();
         return CommandUtility::imageMagickCommand($command, $parameters, $path);
     }
 
@@ -4795,9 +4802,11 @@ class GeneralUtility
      * Ends and flushes all output buffers
      *
      * @return void
+     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
      */
     public static function flushOutputBuffers()
     {
+        self::logDeprecatedFunction();
         $obContent = '';
         while ($content = ob_get_clean()) {
             $obContent .= $content;
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-73516-GeneralUtilitygetFileAbsFileNameAllowsForTypo3MaindirSpecificPaths.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-73516-GeneralUtilitygetFileAbsFileNameAllowsForTypo3MaindirSpecificPaths.rst
new file mode 100644 (file)
index 0000000..faca145
--- /dev/null
@@ -0,0 +1,29 @@
+==============================================================================================
+Breaking: #73516 - GeneralUtility::getFileAbsFileName allows for typo3/ maindir specific paths
+==============================================================================================
+
+Description
+===========
+
+The PHP method ``GeneralUtility::getFileAbsFileName`` used for resolving absolute paths has the option removed to only
+resolve relative paths or paths to the typo3/ main directory resolved.
+
+
+Impact
+======
+
+The two now removed parameters are not evaluated anymore, thus always resolving any path, and additionally
+always relative to the ``PATH_site`` variable (the installations' base directory).
+
+
+Affected Installations
+======================
+
+Any installation with an extension using the now removed options to fetch data relative to the typo3/ directory.
+
+
+Migration
+=========
+
+Use the ``EXT:`` syntax everywhere to resolve files within extension directories. If the path relative to the
+typo3/ main directory is explicitly needed, the constant TYPO3_mainDir can be used as a prefix to the file.
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-73516-VariousGeneralUtilityMethods.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-73516-VariousGeneralUtilityMethods.rst
new file mode 100644 (file)
index 0000000..5ed924d
--- /dev/null
@@ -0,0 +1,37 @@
+====================================================
+Deprecation: #73516 - Various GeneralUtility methods
+====================================================
+
+Description
+===========
+
+The following methods within GeneralUtility have been marked as deprecated:
+
+.. code-block:: php
+
+       GeneralUtility::flushOutputBuffers()
+       GeneralUtility::xmlGetHeaderAttribs()
+       GeneralUtility::imageMagickCommand()
+
+The second and third parameter of ``GeneralUtility::getFileAbsFileName()`` have been removed as well.
+
+
+Impact
+======
+
+Calling any of the methods above will trigger a deprecation log entry. Calling ``GeneralUtility::getFileAbsFileName()``
+with the second and third parameter set, will also trigger a deprecation log entry.
+
+
+Affected Installations
+======================
+
+Any installation using any third-party extension calling any of these methods.
+
+
+Migration
+=========
+
+For ``GeneralUtility::flushOutputBuffers()`` use ``ob_clean()``.
+
+For ``GeneralUtility::imageMagickCommand()`` use ``CommandUtility::imageMagickCommand``.
\ No newline at end of file
index bedf321..b0b6dca 100644 (file)
@@ -17,6 +17,8 @@ namespace TYPO3\CMS\Core\Tests\Unit\Utility;
 use org\bovigo\vfs\vfsStream;
 use org\bovigo\vfs\vfsStreamDirectory;
 use org\bovigo\vfs\vfsStreamWrapper;
+use TYPO3\CMS\Core\Package\Package;
+use TYPO3\CMS\Core\Package\PackageManager;
 use TYPO3\CMS\Core\Tests\FileStreamWrapper;
 use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\GeneralUtilityFilesystemFixture;
 use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\GeneralUtilityFixture;
@@ -25,6 +27,7 @@ use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\OriginalClassFixture;
 use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\OtherReplacementClassFixture;
 use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\ReplacementClassFixture;
 use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\TwoParametersConstructorFixture;
+use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
@@ -4182,37 +4185,54 @@ class GeneralUtilityTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
     public function getFileAbsFileNameDateprovider()
     {
         return [
-            'sysext/core/ext_icon.png, true, true' => ['sysext/core/ext_icon.png', true, true, PATH_site . 'typo3/sysext/core/ext_icon.png'],
-            'fileadmin/foo.txt, true, false' => ['fileadmin/foo.txt', true, false, PATH_site . 'fileadmin/foo.txt'],
-            'sysext/core/ext_icon.png, false, true' => ['sysext/core/ext_icon.png', false, true, PATH_site . 'typo3/sysext/core/ext_icon.png'],
-            'fileadmin/foo.txt, false, false' => ['fileadmin/foo.txt', false, false, PATH_site . 'fileadmin/foo.txt'],
-            './sysext/core/ext_icon.png, true, true' => ['./sysext/core/ext_icon.png', true, true, PATH_site . 'typo3/./sysext/core/ext_icon.png'],
-            './fileadmin/foo.txt, true, false' => ['./fileadmin/foo.txt', true, false, PATH_site . './fileadmin/foo.txt'],
-            './sysext/core/ext_icon.png, false, true' => ['./sysext/core/ext_icon.png', false, true, PATH_site . 'typo3/./sysext/core/ext_icon.png'],
-            './fileadmin/foo.txt, false, false' => ['./fileadmin/foo.txt', false, false, PATH_site . './fileadmin/foo.txt'],
-            '../sysext/core/ext_icon.png, true, true' => ['../sysext/core/ext_icon.png', true, true, ''],
-            '../fileadmin/foo.txt, true, false' => ['../fileadmin/foo.txt', true, false, ''],
-            '../sysext/core/ext_icon.png, false, true' => ['../sysext/core/ext_icon.png', false, true, ''],
-            '../fileadmin/foo.txt, false, false' => ['../fileadmin/foo.txt', false, false, ''],
-            'PATH_site . sysext/core/ext_icon.png, true, true' => [PATH_site . 'sysext/core/ext_icon.png', true, true, ''],
-            'PATH_site . fileadmin/foo.txt, true, false' => [PATH_site . 'fileadmin/foo.txt', true, false, PATH_site . 'fileadmin/foo.txt'],
-            'PATH_site . typo3/sysext/core/ext_icon.png, false, true' => [PATH_site . 'typo3/sysext/core/ext_icon.png', false, true, PATH_site . 'typo3/sysext/core/ext_icon.png'],
-            'PATH_site . fileadmin/foo.txt, false, false' => [PATH_site . 'fileadmin/foo.txt', false, false, PATH_site . 'fileadmin/foo.txt'],
+            'typo3/sysext/core/ext_icon.png' => ['typo3/sysext/core/ext_icon.png', PATH_site . 'typo3/sysext/core/ext_icon.png'],
+            'sysext/core/ext_icon.png' => ['sysext/core/ext_icon.png', PATH_site . 'sysext/core/ext_icon.png'],
+            './typo3/sysext/core/ext_icon.png' => ['./typo3/sysext/core/ext_icon.png', PATH_site . './typo3/sysext/core/ext_icon.png'],
+            'fileadmin/foo.txt' => ['fileadmin/foo.txt', PATH_site . 'fileadmin/foo.txt'],
+            './fileadmin/foo.txt' => ['./fileadmin/foo.txt', PATH_site . './fileadmin/foo.txt'],
+            '../sysext/core/ext_icon.png' => ['../sysext/core/ext_icon.png', ''],
+            '../fileadmin/foo.txt' => ['../fileadmin/foo.txt', ''],
+            'PATH_site . ../sysext/core/ext_icon.png' => [PATH_site . '../sysext/core/ext_icon.png', ''],
+            'PATH_site . fileadmin/foo.txt' => [PATH_site . 'fileadmin/foo.txt', PATH_site . 'fileadmin/foo.txt'],
+            'PATH_site . typo3/sysext/core/ext_icon.png' => [PATH_site . 'typo3/sysext/core/ext_icon.png', PATH_site . 'typo3/sysext/core/ext_icon.png'],
+            'EXT:foo/ext_icon.png' => ['EXT:foo/ext_icon.png', PATH_site . 'typo3/sysext/foo/ext_icon.png']
         ];
     }
 
     /**
      * @param string $path
-     * @param bool $onlyRelative
-     * @param bool $relToTYPO3_mainDir
      * @param string $expected
      * @test
      * @dataProvider getFileAbsFileNameDateprovider
      */
-    public function getFileAbsFileNameReturnsCorrectValues($path, $onlyRelative, $relToTYPO3_mainDir, $expected)
-    {
-        $result = GeneralUtility::getFileAbsFileName($path, $onlyRelative, $relToTYPO3_mainDir);
+    public function getFileAbsFileNameReturnsCorrectValues($path, $expected)
+    {
+
+        // build the dummy package "foo" for use in ExtensionManagementUtility::extPath('foo');
+        $package = $this->getMockBuilder(Package::class)
+            ->disableOriginalConstructor()
+            ->setMethods(array('getPackagePath'))
+            ->getMock();
+        /** @var PackageManager|\PHPUnit_Framework_MockObject_MockObject $packageManager */
+        $packageManager = $this->getMock(PackageManager::class, array('isPackageActive', 'getPackage'));
+        $package->expects($this->any())
+            ->method('getPackagePath')
+            ->will($this->returnValue(PATH_site . 'typo3/sysext/foo/'));
+        $packageManager->expects($this->any())
+            ->method('isPackageActive')
+            ->with($this->equalTo('foo'))
+            ->will($this->returnValue(true));
+        $packageManager->expects($this->any())
+            ->method('getPackage')
+            ->with('foo')
+            ->will($this->returnValue($package));
+        ExtensionManagementUtility::setPackageManager($packageManager);
+
+        $result = GeneralUtility::getFileAbsFileName($path);
         $this->assertEquals($expected, $result);
+
+        // Reset the package manager to use the original one again
+        ExtensionManagementUtility::setPackageManager(GeneralUtility::makeInstance(\TYPO3\CMS\Core\Package\PackageManager::class));
     }
 
     /**
index 21c502c..8c0039e 100644 (file)
@@ -279,7 +279,7 @@ class TableManualRepository
                     );
                 } elseif (substr($referenceUrl[1], 0, 5) === 'FILE:') {
                     // File reference
-                    $fileName = GeneralUtility::getFileAbsFileName(substr($referenceUrl[1], 5), 1, 1);
+                    $fileName = GeneralUtility::getFileAbsFileName(substr($referenceUrl[1], 5));
                     if ($fileName && @is_file($fileName)) {
                         $fileName = '../' . PathUtility::stripPathSitePrefix($fileName);
                         $lines[] = array(
@@ -359,7 +359,7 @@ class TableManualRepository
             $descrArray = explode(LF, $descriptions, count($imgArray));
             foreach ($imgArray as $k => $image) {
                 $descriptions = $descrArray[$k];
-                $absImagePath = GeneralUtility::getFileAbsFileName($image, true, true);
+                $absImagePath = GeneralUtility::getFileAbsFileName($image);
                 if ($absImagePath && @is_file($absImagePath)) {
                     $imgFile = PathUtility::stripPathSitePrefix($absImagePath);
                     $imgInfo = @getimagesize($absImagePath);
index 405f4e5..0c2e0df 100644 (file)
@@ -183,8 +183,7 @@ class ConfigurationUtility implements \TYPO3\CMS\Core\SingletonInterface
     {
         $rawString = '';
         $extConfTemplateFileLocation = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(
-            'EXT:' . $extensionKey . '/ext_conf_template.txt',
-            false
+            'EXT:' . $extensionKey . '/ext_conf_template.txt'
         );
         if (file_exists($extConfTemplateFileLocation)) {
             $rawString = file_get_contents($extConfTemplateFileLocation);
index 84a590e..811395f 100644 (file)
@@ -94,10 +94,7 @@ class UpdateScriptUtility
      */
     protected function determineUpdateClassName($extensionKey)
     {
-        $updateScript = GeneralUtility::getFileAbsFileName(
-            'EXT:' . $extensionKey . '/class.ext_update.php',
-            false
-        );
+        $updateScript = GeneralUtility::getFileAbsFileName('EXT:' . $extensionKey . '/class.ext_update.php');
         if (!file_exists($updateScript)) {
             return '';
         }