From f870434222b209f705b902168cad179b7ef8bd12 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Thu, 19 Aug 2010 22:06:19 +0200 Subject: [PATCH] [feature/auto-loading] Only check subdir if there is another name part. PHPBB3-9682 --- phpBB/includes/class_loader.php | 2 +- tests/class_loader/class_loader_test.php | 6 ++++++ tests/class_loader/includes/dir.php | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 tests/class_loader/includes/dir.php diff --git a/phpBB/includes/class_loader.php b/phpBB/includes/class_loader.php index c70351b437..5df654799a 100644 --- a/phpBB/includes/class_loader.php +++ b/phpBB/includes/class_loader.php @@ -115,7 +115,7 @@ class phpbb_class_loader $dirs = ''; - for ($i = 0; is_dir($path_prefix . $dirs . $parts[$i]) && $i < sizeof($parts); $i++) + for ($i = 0, $n = sizeof($parts); $i < $n && is_dir($path_prefix . $dirs . $parts[$i]); $i++) { $dirs .= $parts[$i] . '/'; } diff --git a/tests/class_loader/class_loader_test.php b/tests/class_loader/class_loader_test.php index 37c11657c4..e53507ded3 100644 --- a/tests/class_loader/class_loader_test.php +++ b/tests/class_loader/class_loader_test.php @@ -23,6 +23,12 @@ class phpbb_class_loader_test extends PHPUnit_Framework_TestCase $prefix .= 'includes/'; + $this->assertEquals( + '', + $class_loader->resolve_path('phpbb_dir'), + 'Class with same name as a directory is unloadable' + ); + $this->assertEquals( $prefix . 'class_name.php', $class_loader->resolve_path('phpbb_class_name'), diff --git a/tests/class_loader/includes/dir.php b/tests/class_loader/includes/dir.php new file mode 100644 index 0000000000..1c8930d8e7 --- /dev/null +++ b/tests/class_loader/includes/dir.php @@ -0,0 +1,6 @@ +