From c56aceaef5ab4ebec4f22a650aba32bd5273d441 Mon Sep 17 00:00:00 2001 From: Bez Hermoso Date: Fri, 8 Aug 2014 09:03:59 -0700 Subject: [PATCH] Updated regex pattern to base on http://fr2.php.net/manual/en/language.oop5.basic.php --- Extractor/ApiDocExtractor.php | 2 +- Tests/Extractor/CollectionDirectiveTest.php | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Extractor/ApiDocExtractor.php b/Extractor/ApiDocExtractor.php index 725ddfc..9241516 100644 --- a/Extractor/ApiDocExtractor.php +++ b/Extractor/ApiDocExtractor.php @@ -378,7 +378,7 @@ class ApiDocExtractor /* * Match array as alias; "as alias" optional. */ - if (preg_match_all("/^array<([A-Za-z]+[A-Za-z0-9_]*(?:\\\\[A-Za-z]+[A-Za-z0-9_]*)*)>(?:\\s+as\\s+(.+))?$/", $input['class'], $collectionData)) { + if (preg_match_all("/^array<([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*)>(?:\\s+as\\s+(.+))?$/", $input['class'], $collectionData)) { $input['class'] = $collectionData[1][0]; $input['collection'] = true; $input['collectionName'] = $collectionData[2][0]; diff --git a/Tests/Extractor/CollectionDirectiveTest.php b/Tests/Extractor/CollectionDirectiveTest.php index c432726..1666dc8 100644 --- a/Tests/Extractor/CollectionDirectiveTest.php +++ b/Tests/Extractor/CollectionDirectiveTest.php @@ -44,7 +44,7 @@ class CollectionDirectiveTest extends \PHPUnit_Framework_TestCase } ), 'test_simple_notation_with_namespaces' => array( - 'array', + 'array', function ($actual, \PHPUnit_Framework_TestCase $case) { $case->assertArrayHasKey('collection', $actual); $case->assertArrayHasKey('collectionName', $actual); @@ -52,7 +52,7 @@ class CollectionDirectiveTest extends \PHPUnit_Framework_TestCase $case->assertTrue($actual['collection']); $case->assertEquals('', $actual['collectionName']); - $case->assertEquals('Vendor0_2\\Namespace1\\Namespace_2\\User', $actual['class']); + $case->assertEquals('Vendor0_2\\_Namespace1\\Namespace_2\\User', $actual['class']); } ), 'test_simple_named_collections' => array( @@ -68,7 +68,7 @@ class CollectionDirectiveTest extends \PHPUnit_Framework_TestCase } ), 'test_namespaced_named_collections' => array( - 'array as groups', + 'array<_Vendor\\Namespace0\\Namespace_2F3\\Group> as groups', function ($actual, \PHPUnit_Framework_TestCase $case) { $case->assertArrayHasKey('collection', $actual); $case->assertArrayHasKey('collectionName', $actual); @@ -76,7 +76,7 @@ class CollectionDirectiveTest extends \PHPUnit_Framework_TestCase $case->assertTrue($actual['collection']); $case->assertEquals('groups', $actual['collectionName']); - $case->assertEquals('Vendor\\Namespace0\\Namespace_2F3\\Group', $actual['class']); + $case->assertEquals('_Vendor\\Namespace0\\Namespace_2F3\\Group', $actual['class']); } ), @@ -99,8 +99,6 @@ class CollectionDirectiveTest extends \PHPUnit_Framework_TestCase array('array<>'), array('array'), array('array<2Vendor\\>'), - array('array<_Vendor\\>'), - array('array'), array('array'), array('array as'), array('array as '),