fix triggering deprecation in file locator

This commit is contained in:
Christian Flothmann 2019-12-09 08:43:32 +01:00
parent 33146778b5
commit 142b1793e0

View File

@ -65,20 +65,24 @@ class FileLocator extends BaseFileLocator
|| (\strlen($file) > 3 && ctype_alpha($file[0]) && ':' === $file[1] && ('\\' === $file[2] || '/' === $file[2])) || (\strlen($file) > 3 && ctype_alpha($file[0]) && ':' === $file[1] && ('\\' === $file[2] || '/' === $file[2]))
|| null !== parse_url($file, PHP_URL_SCHEME) || null !== parse_url($file, PHP_URL_SCHEME)
)) { )) {
$triggerDeprecation = false;
// no need to trigger deprecations when the loaded file is given as absolute path // no need to trigger deprecations when the loaded file is given as absolute path
foreach ($this->paths as $deprecatedPath) { foreach ($this->paths as $deprecatedPath) {
if (\is_array($locations)) { foreach ((array) $locations as $location) {
foreach ($locations as $location) { if (null !== $currentPath && 0 === strpos($location, $currentPath)) {
if (0 === strpos($location, $deprecatedPath) && (null === $currentPath || false === strpos($location, $currentPath))) { return $locations;
@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);
}
} }
} else {
if (0 === strpos($locations, $deprecatedPath) && (null === $currentPath || false === strpos($locations, $currentPath))) { 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); $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; return $locations;