Skip to content

Commit 4a17c9e

Browse files
[ClassLoader] Fix parsing namespace when token_get_all() is missing
1 parent bece73a commit 4a17c9e

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/Symfony/Component/ClassLoader/ClassCollectionLoader.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ public static function load($classes, $cacheDir, $name, $autoReload, $adaptive =
137137
public static function fixNamespaceDeclarations($source)
138138
{
139139
if (!function_exists('token_get_all') || !self::$useTokenizer) {
140-
if (preg_match('/namespace(.*?)\s*;/', $source)) {
141-
$source = preg_replace('/namespace(.*?)\s*;/', "namespace$1\n{", $source)."}\n";
140+
if (preg_match('/(^|\s)namespace(.*?)\s*;/', $source)) {
141+
$source = preg_replace('/(^|\s)namespace(.*?)\s*;/', "$1namespace$2\n{", $source)."}\n";
142142
}
143143

144144
return $source;

src/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public function getFixNamespaceDeclarationsDataWithoutTokenizer()
205205
array("namespace Bar ;\nclass Foo {}\n", "namespace Bar\n{\nclass Foo {}\n}\n"),
206206
array("namespace Foo\Bar;\nclass Foo {}\n", "namespace Foo\Bar\n{\nclass Foo {}\n}\n"),
207207
array("namespace Foo\Bar\Bar\n{\nclass Foo {}\n}\n", "namespace Foo\Bar\Bar\n{\nclass Foo {}\n}\n"),
208-
array("namespace\n{\nclass Foo {}\n}\n", "namespace\n{\nclass Foo {}\n}\n"),
208+
array("\nnamespace\n{\nclass Foo {}\n\$namespace=123;}\n", "\nnamespace\n{\nclass Foo {}\n\$namespace=123;}\n"),
209209
);
210210
}
211211

0 commit comments

Comments
 (0)