Skip to content

Commit 6a360de

Browse files
committed
Helpers::isNamespaceIdentifier() added $allowLeadingSlash
1 parent 6241e4d commit 6a360de

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/PhpGenerator/Helpers.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,10 @@ public static function isIdentifier($value): bool
229229
}
230230

231231

232-
public static function isNamespaceIdentifier($value): bool
232+
public static function isNamespaceIdentifier($value, bool $allowLeadingSlash = FALSE): bool
233233
{
234-
return is_string($value) && preg_match('#^' . Helpers::PHP_IDENT . '(\\\\' . Helpers::PHP_IDENT . ')*\z#', $value);
234+
$re = '#^' . ($allowLeadingSlash ? '\\\\?' : '') . Helpers::PHP_IDENT . '(\\\\' . Helpers::PHP_IDENT . ')*\z#';
235+
return is_string($value) && preg_match($re, $value);
235236
}
236237

237238

tests/PhpGenerator/Helpers.isNamespaceIdentifier.phpt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ Assert::true(Helpers::isNamespaceIdentifier('Item\Item'));
1717
Assert::false(Helpers::isNamespaceIdentifier('Item\\\\Item'));
1818
Assert::false(Helpers::isNamespaceIdentifier('\\Item'));
1919
Assert::false(Helpers::isNamespaceIdentifier('Item\\'));
20+
21+
Assert::true(Helpers::isNamespaceIdentifier('\\Item', TRUE));
22+
Assert::false(Helpers::isNamespaceIdentifier('Item\\', TRUE));

0 commit comments

Comments
 (0)