From c4d44eb089d4ea9c58210ef4aec2e5e7a66fca6c Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 10 Sep 2019 11:15:55 +0200 Subject: [PATCH] Simplify usage of dirname() --- .php_cs.dist | 1 + .../Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php | 2 +- src/Symfony/Bundle/FrameworkBundle/Client.php | 2 +- .../DependencyInjection/FrameworkExtension.php | 2 +- .../Command/CacheClearCommand/CacheClearCommandTest.php | 2 +- .../DependencyInjection/Compiler/ExtensionPass.php | 2 +- src/Symfony/Component/Config/Resource/ComposerResource.php | 2 +- .../ClassNotFoundFatalErrorHandlerTest.php | 2 +- .../DependencyInjection/Tests/Dumper/PhpDumperTest.php | 2 +- .../Component/Form/Tests/Resources/TranslationFilesTest.php | 6 +++--- src/Symfony/Component/HttpKernel/Client.php | 2 +- .../Security/Core/Tests/Resources/TranslationFilesTest.php | 6 +++--- .../Validator/Tests/Resources/TranslationFilesTest.php | 6 +++--- src/Symfony/Component/VarDumper/Caster/LinkStub.php | 2 +- 14 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index 6206f7144a..789e3a5d0b 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -21,6 +21,7 @@ return PhpCsFixer\Config::create() 'native_function_invocation' => ['include' => ['@compiler_optimized'], 'scope' => 'namespaced', 'strict' => true], // Part of future @Symfony ruleset in PHP-CS-Fixer To be removed from the config file once upgrading 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], + 'combine_nested_dirname' => true, ]) ->setRiskyAllowed(true) ->setFinder( diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php index 2d6aa29224..8879606722 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php @@ -269,7 +269,7 @@ class Deprecation foreach (get_declared_classes() as $class) { if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { $r = new \ReflectionClass($class); - $v = \dirname(\dirname($r->getFileName())); + $v = \dirname($r->getFileName(), 2); if (file_exists($v.'/composer/installed.json')) { self::$vendors[] = $v; $loader = require $v.'/autoload.php'; diff --git a/src/Symfony/Bundle/FrameworkBundle/Client.php b/src/Symfony/Bundle/FrameworkBundle/Client.php index 3e395a4904..6450a4ec00 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Client.php +++ b/src/Symfony/Bundle/FrameworkBundle/Client.php @@ -169,7 +169,7 @@ class Client extends HttpKernelBrowser foreach (get_declared_classes() as $class) { if (0 === strpos($class, 'ComposerAutoloaderInit')) { $r = new \ReflectionClass($class); - $file = \dirname(\dirname($r->getFileName())).'/autoload.php'; + $file = \dirname($r->getFileName(), 2).'/autoload.php'; if (file_exists($file)) { $requires .= 'require_once '.var_export($file, true).";\n"; } diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 1b5fea6564..8cb3fdd242 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -1114,7 +1114,7 @@ class FrameworkExtension extends Extension if (class_exists('Symfony\Component\Security\Core\Exception\AuthenticationException')) { $r = new \ReflectionClass('Symfony\Component\Security\Core\Exception\AuthenticationException'); - $dirs[] = $transPaths[] = \dirname(\dirname($r->getFileName())).'/Resources/translations'; + $dirs[] = $transPaths[] = \dirname($r->getFileName(), 2).'/Resources/translations'; } $defaultDir = $container->getParameterBag()->resolveValue($config['default_path']); $rootDir = $container->getParameter('kernel.root_dir'); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php index d70f92b7e6..118a14e84e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/CacheClearCommand/CacheClearCommandTest.php @@ -64,7 +64,7 @@ class CacheClearCommandTest extends TestCase // check that app kernel file present in meta file of container's cache $containerClass = $this->kernel->getContainer()->getParameter('kernel.container_class'); $containerRef = new \ReflectionClass($containerClass); - $containerFile = \dirname(\dirname($containerRef->getFileName())).'/'.$containerClass.'.php'; + $containerFile = \dirname($containerRef->getFileName(), 2).'/'.$containerClass.'.php'; $containerMetaFile = $containerFile.'.meta'; $kernelRef = new \ReflectionObject($this->kernel); $kernelFile = $kernelRef->getFileName(); diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index 79a6ad9ae8..e9138535e5 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -44,7 +44,7 @@ class ExtensionPass implements CompilerPassInterface $container->getDefinition('twig.extension.form')->addTag('twig.extension'); $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); - $coreThemePath = \dirname(\dirname($reflClass->getFileName())).'/Resources/views/Form'; + $coreThemePath = \dirname($reflClass->getFileName(), 2).'/Resources/views/Form'; $container->getDefinition('twig.loader.native_filesystem')->addMethodCall('addPath', [$coreThemePath]); $paths = $container->getDefinition('twig.template_iterator')->getArgument(2); diff --git a/src/Symfony/Component/Config/Resource/ComposerResource.php b/src/Symfony/Component/Config/Resource/ComposerResource.php index 183ffabebd..822766b75b 100644 --- a/src/Symfony/Component/Config/Resource/ComposerResource.php +++ b/src/Symfony/Component/Config/Resource/ComposerResource.php @@ -60,7 +60,7 @@ class ComposerResource implements SelfCheckingResourceInterface foreach (get_declared_classes() as $class) { if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { $r = new \ReflectionClass($class); - $v = \dirname(\dirname($r->getFileName())); + $v = \dirname($r->getFileName(), 2); if (file_exists($v.'/composer/installed.json')) { self::$runtimeVendors[$v] = @filemtime($v.'/composer/installed.json'); } diff --git a/src/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php b/src/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php index 7287fa7735..f3fd16e2ac 100644 --- a/src/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php +++ b/src/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php @@ -32,7 +32,7 @@ class ClassNotFoundFatalErrorHandlerTest extends TestCase } if ($function[0] instanceof ComposerClassLoader) { - $function[0]->add('Symfony_Component_Debug_Tests_Fixtures', \dirname(\dirname(\dirname(\dirname(\dirname(__DIR__)))))); + $function[0]->add('Symfony_Component_Debug_Tests_Fixtures', \dirname(__DIR__, 5)); break; } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php index 8839db3335..073f57d369 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php @@ -105,7 +105,7 @@ class PhpDumperTest extends TestCase $container->setParameter('foo', 'wiz'.\dirname(__DIR__)); $container->setParameter('bar', __DIR__); $container->setParameter('baz', '%bar%/PhpDumperTest.php'); - $container->setParameter('buz', \dirname(\dirname(__DIR__))); + $container->setParameter('buz', \dirname(__DIR__, 2)); $container->compile(); $dumper = new PhpDumper($container); diff --git a/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php b/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php index 49e69ef190..e45fed8554 100644 --- a/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php +++ b/src/Symfony/Component/Form/Tests/Resources/TranslationFilesTest.php @@ -29,15 +29,15 @@ class TranslationFilesTest extends TestCase { return array_map( function ($filePath) { return (array) $filePath; }, - glob(\dirname(\dirname(__DIR__)).'/Resources/translations/*.xlf') + glob(\dirname(__DIR__, 2).'/Resources/translations/*.xlf') ); } public function testNorwegianAlias() { $this->assertFileEquals( - \dirname(\dirname(__DIR__)).'/Resources/translations/validators.nb.xlf', - \dirname(\dirname(__DIR__)).'/Resources/translations/validators.no.xlf', + \dirname(__DIR__, 2).'/Resources/translations/validators.nb.xlf', + \dirname(__DIR__, 2).'/Resources/translations/validators.no.xlf', 'The NO locale should be an alias for the NB variant of the Norwegian language.' ); } diff --git a/src/Symfony/Component/HttpKernel/Client.php b/src/Symfony/Component/HttpKernel/Client.php index d4ae5f8e65..fba2562a6c 100644 --- a/src/Symfony/Component/HttpKernel/Client.php +++ b/src/Symfony/Component/HttpKernel/Client.php @@ -90,7 +90,7 @@ class Client extends AbstractBrowser foreach (get_declared_classes() as $class) { if (0 === strpos($class, 'ComposerAutoloaderInit')) { $r = new \ReflectionClass($class); - $file = \dirname(\dirname($r->getFileName())).'/autoload.php'; + $file = \dirname($r->getFileName(), 2).'/autoload.php'; if (file_exists($file)) { $requires .= 'require_once '.var_export($file, true).";\n"; } diff --git a/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php b/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php index bc21d272fc..8dce5c80b3 100644 --- a/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php +++ b/src/Symfony/Component/Security/Core/Tests/Resources/TranslationFilesTest.php @@ -29,15 +29,15 @@ class TranslationFilesTest extends TestCase { return array_map( function ($filePath) { return (array) $filePath; }, - glob(\dirname(\dirname(__DIR__)).'/Resources/translations/*.xlf') + glob(\dirname(__DIR__, 2).'/Resources/translations/*.xlf') ); } public function testNorwegianAlias() { $this->assertFileEquals( - \dirname(\dirname(__DIR__)).'/Resources/translations/security.nb.xlf', - \dirname(\dirname(__DIR__)).'/Resources/translations/security.no.xlf', + \dirname(__DIR__, 2).'/Resources/translations/security.nb.xlf', + \dirname(__DIR__, 2).'/Resources/translations/security.no.xlf', 'The NO locale should be an alias for the NB variant of the Norwegian language.' ); } diff --git a/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php b/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php index 56ff24d2fd..26f93293c7 100644 --- a/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php +++ b/src/Symfony/Component/Validator/Tests/Resources/TranslationFilesTest.php @@ -29,15 +29,15 @@ class TranslationFilesTest extends TestCase { return array_map( function ($filePath) { return (array) $filePath; }, - glob(\dirname(\dirname(__DIR__)).'/Resources/translations/*.xlf') + glob(\dirname(__DIR__, 2).'/Resources/translations/*.xlf') ); } public function testNorwegianAlias() { $this->assertFileEquals( - \dirname(\dirname(__DIR__)).'/Resources/translations/validators.nb.xlf', - \dirname(\dirname(__DIR__)).'/Resources/translations/validators.no.xlf', + \dirname(__DIR__, 2).'/Resources/translations/validators.nb.xlf', + \dirname(__DIR__, 2).'/Resources/translations/validators.no.xlf', 'The NO locale should be an alias for the NB variant of the Norwegian language.' ); } diff --git a/src/Symfony/Component/VarDumper/Caster/LinkStub.php b/src/Symfony/Component/VarDumper/Caster/LinkStub.php index 84a8b10d40..d18b359ea1 100644 --- a/src/Symfony/Component/VarDumper/Caster/LinkStub.php +++ b/src/Symfony/Component/VarDumper/Caster/LinkStub.php @@ -71,7 +71,7 @@ class LinkStub extends ConstStub foreach (get_declared_classes() as $class) { if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { $r = new \ReflectionClass($class); - $v = \dirname(\dirname($r->getFileName())); + $v = \dirname($r->getFileName(), 2); if (file_exists($v.'/composer/installed.json')) { self::$vendorRoots[] = $v.\DIRECTORY_SEPARATOR; }