aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2010-08-20 22:05:05 +0200
committerAndreas Fischer <bantu@phpbb.com>2010-08-20 22:05:05 +0200
commitdf111373a6b6614857c6729b5fcc23985e0b0278 (patch)
treea9ab5fb95c24787d6c6421a643165ea9f39c81a7
parent3f0c02533aad96ead9597b96351c0fd6b0cf5178 (diff)
parentf870434222b209f705b902168cad179b7ef8bd12 (diff)
downloadforums-df111373a6b6614857c6729b5fcc23985e0b0278.tar
forums-df111373a6b6614857c6729b5fcc23985e0b0278.tar.gz
forums-df111373a6b6614857c6729b5fcc23985e0b0278.tar.bz2
forums-df111373a6b6614857c6729b5fcc23985e0b0278.tar.xz
forums-df111373a6b6614857c6729b5fcc23985e0b0278.zip
Merge branch 'feature/naderman/auto-loading' into develop
* feature/naderman/auto-loading: [feature/auto-loading] Only check subdir if there is another name part.
-rw-r--r--phpBB/includes/class_loader.php2
-rw-r--r--tests/class_loader/class_loader_test.php6
-rw-r--r--tests/class_loader/includes/dir.php6
3 files changed, 13 insertions, 1 deletions
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
@@ -24,6 +24,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'),
'Top level class'
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 @@
+<?php
+
+class phpbb_dir
+{
+}
+