From 7e21f2563136a1c662eddfa5aa5cb52ce5cabb98 Mon Sep 17 00:00:00 2001 From: Mapkuff Date: Mon, 19 Sep 2016 01:24:27 +0700 Subject: [PATCH 1/5] 1. Fix ClassScanner::getInterfaces() which don't work with Interface. 2. add TestCase ClassScannerTest::testGetInterfacesFromInterface(). --- src/Scanner/ClassScanner.php | 8 ++++++-- test/Scanner/ClassScannerTest.php | 11 +++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Scanner/ClassScanner.php b/src/Scanner/ClassScanner.php index 1ca7fd3d..cb4ef09b 100644 --- a/src/Scanner/ClassScanner.php +++ b/src/Scanner/ClassScanner.php @@ -985,7 +985,11 @@ protected function scan() case T_STRING: switch ($classContext) { case T_EXTENDS: - $this->shortParentClass .= $tokenContent; + if( $this->isInterface ) { + $this->shortInterfaces[$classInterfaceIndex] .= $tokenContent; + }else{ + $this->shortParentClass .= $tokenContent; + } break; case T_IMPLEMENTS: $this->shortInterfaces[$classInterfaceIndex] .= $tokenContent; @@ -1006,7 +1010,7 @@ protected function scan() // goto no break needed case null: - if ($classContext == T_IMPLEMENTS && $tokenContent == ',') { + if (( $classContext == T_IMPLEMENTS && $tokenContent == ',' ) || ( $classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface )) { $classInterfaceIndex++; $this->shortInterfaces[$classInterfaceIndex] = ''; } diff --git a/test/Scanner/ClassScannerTest.php b/test/Scanner/ClassScannerTest.php index ea8514f1..8c186228 100644 --- a/test/Scanner/ClassScannerTest.php +++ b/test/Scanner/ClassScannerTest.php @@ -307,4 +307,15 @@ public function testTraitIsNotInstantiable() $this->assertTrue($class->isTrait()); $this->assertFalse($class->isInstantiable()); } + + public function testGetInterfacesFromInterface() + { + $file = new FileScanner(__DIR__ . '/../TestAsset/FooInterface.php'); + $class = $file->getClass('ZendTest\Code\TestAsset\FooInterface'); + $this->assertTrue($class->isInterface()); + $this->assertEquals(1, count($class->getInterfaces())); + $this->assertEquals('ArrayAccess', $class->getInterfaces()[0]); + } + + } From dff60afdea5b2f45c7b907a3749ac0ed8aac4021 Mon Sep 17 00:00:00 2001 From: Mapkuff Date: Mon, 19 Sep 2016 01:41:51 +0700 Subject: [PATCH 2/5] Fix Travis code convention --- src/Scanner/ClassScanner.php | 4 ++-- test/Scanner/ClassScannerTest.php | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Scanner/ClassScanner.php b/src/Scanner/ClassScanner.php index cb4ef09b..c06d4fb1 100644 --- a/src/Scanner/ClassScanner.php +++ b/src/Scanner/ClassScanner.php @@ -985,9 +985,9 @@ protected function scan() case T_STRING: switch ($classContext) { case T_EXTENDS: - if( $this->isInterface ) { + if ($this->isInterface) { $this->shortInterfaces[$classInterfaceIndex] .= $tokenContent; - }else{ + } else { $this->shortParentClass .= $tokenContent; } break; diff --git a/test/Scanner/ClassScannerTest.php b/test/Scanner/ClassScannerTest.php index 8c186228..254cc3e2 100644 --- a/test/Scanner/ClassScannerTest.php +++ b/test/Scanner/ClassScannerTest.php @@ -316,6 +316,4 @@ public function testGetInterfacesFromInterface() $this->assertEquals(1, count($class->getInterfaces())); $this->assertEquals('ArrayAccess', $class->getInterfaces()[0]); } - - } From 9fe96388058d52777341c3aa6b035d8da1c55af8 Mon Sep 17 00:00:00 2001 From: Mapkuff Date: Mon, 19 Sep 2016 01:53:39 +0700 Subject: [PATCH 3/5] Fix Travis code convention --- src/Scanner/ClassScanner.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Scanner/ClassScanner.php b/src/Scanner/ClassScanner.php index c06d4fb1..c8366f88 100644 --- a/src/Scanner/ClassScanner.php +++ b/src/Scanner/ClassScanner.php @@ -1010,7 +1010,10 @@ protected function scan() // goto no break needed case null: - if (( $classContext == T_IMPLEMENTS && $tokenContent == ',' ) || ( $classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface )) { + if ($classContext == T_IMPLEMENTS && $tokenContent == ',') { + $classInterfaceIndex++; + $this->shortInterfaces[$classInterfaceIndex] = ''; + } elseif ($classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface) { $classInterfaceIndex++; $this->shortInterfaces[$classInterfaceIndex] = ''; } From 549382a3340ceaafa85773b2cea4c9c21ee5853d Mon Sep 17 00:00:00 2001 From: Mapkuff Date: Mon, 19 Sep 2016 02:05:10 +0700 Subject: [PATCH 4/5] Fix Travis code convention --- src/Scanner/ClassScanner.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Scanner/ClassScanner.php b/src/Scanner/ClassScanner.php index c8366f88..d952c88a 100644 --- a/src/Scanner/ClassScanner.php +++ b/src/Scanner/ClassScanner.php @@ -1010,10 +1010,9 @@ protected function scan() // goto no break needed case null: - if ($classContext == T_IMPLEMENTS && $tokenContent == ',') { - $classInterfaceIndex++; - $this->shortInterfaces[$classInterfaceIndex] = ''; - } elseif ($classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface) { + if (($classContext == T_IMPLEMENTS && $tokenContent == ',') + || ($classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface)) + { $classInterfaceIndex++; $this->shortInterfaces[$classInterfaceIndex] = ''; } From de130a5f5fc84a37b94fd2b6ff4862c7dafdd894 Mon Sep 17 00:00:00 2001 From: Mapkuff Date: Mon, 19 Sep 2016 02:07:36 +0700 Subject: [PATCH 5/5] Fix Travis code convention --- src/Scanner/ClassScanner.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Scanner/ClassScanner.php b/src/Scanner/ClassScanner.php index d952c88a..7069d5e9 100644 --- a/src/Scanner/ClassScanner.php +++ b/src/Scanner/ClassScanner.php @@ -1011,8 +1011,7 @@ protected function scan() case null: if (($classContext == T_IMPLEMENTS && $tokenContent == ',') - || ($classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface)) - { + || ($classContext == T_EXTENDS && $tokenContent == ',' && $this->isInterface)) { $classInterfaceIndex++; $this->shortInterfaces[$classInterfaceIndex] = ''; }