From 142b1793e0594203a84f5f9348434a6347923509 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Mon, 9 Dec 2019 08:43:32 +0100 Subject: [PATCH] fix triggering deprecation in file locator --- .../HttpKernel/Config/FileLocator.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Config/FileLocator.php b/src/Symfony/Component/HttpKernel/Config/FileLocator.php index 8683a3eefe..fecdf223b7 100644 --- a/src/Symfony/Component/HttpKernel/Config/FileLocator.php +++ b/src/Symfony/Component/HttpKernel/Config/FileLocator.php @@ -65,20 +65,24 @@ class FileLocator extends BaseFileLocator || (\strlen($file) > 3 && ctype_alpha($file[0]) && ':' === $file[1] && ('\\' === $file[2] || '/' === $file[2])) || null !== parse_url($file, PHP_URL_SCHEME) )) { + $triggerDeprecation = false; + // no need to trigger deprecations when the loaded file is given as absolute path foreach ($this->paths as $deprecatedPath) { - if (\is_array($locations)) { - foreach ($locations as $location) { - if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) { - @trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED); - } + foreach ((array) $locations as $location) { + if (null !== $currentPath && 0 === strpos($location, $currentPath)) { + return $locations; } - } else { - if (0 === strpos($locations, $deprecatedPath) && (null === $currentPath || false === strpos($locations, $currentPath))) { - @trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED); + + if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) { + $triggerDeprecation = true; } } } + + if ($triggerDeprecation) { + @trigger_error(sprintf('Loading the file "%s" from the global resource directory "%s" is deprecated since Symfony 4.4 and will be removed in 5.0.', $file, $deprecatedPath), E_USER_DEPRECATED); + } } return $locations;