summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <Raydiation@users.noreply.github.com>2015-06-22 10:35:28 +0200
committerBernhard Posselt <Raydiation@users.noreply.github.com>2015-06-22 10:35:28 +0200
commit7fe5ab4d4a43efb0384e59012fa1934acae7d6dc (patch)
tree179db751fed38d669e1053537a2cafa51f9ac1c2
parentc77e44117d1cdb45a224e3f370acbb09f1b095dc (diff)
parentf1e3e2515856816fabbd0836ddc24495d35c2edf (diff)
downloadnextcloud-server-7fe5ab4d4a43efb0384e59012fa1934acae7d6dc.tar.gz
nextcloud-server-7fe5ab4d4a43efb0384e59012fa1934acae7d6dc.zip
Merge pull request #17056 from owncloud/appframework-type-cast
Allow multiple whitespace in type hints in AppFramework
-rw-r--r--lib/private/appframework/utility/controllermethodreflector.php2
-rw-r--r--tests/lib/appframework/utility/ControllerMethodReflectorTest.php14
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/private/appframework/utility/controllermethodreflector.php b/lib/private/appframework/utility/controllermethodreflector.php
index 93510093c08..e013a74253a 100644
--- a/lib/private/appframework/utility/controllermethodreflector.php
+++ b/lib/private/appframework/utility/controllermethodreflector.php
@@ -59,7 +59,7 @@ class ControllerMethodReflector implements IControllerMethodReflector{
$this->annotations = $matches[1];
// extract type parameter information
- preg_match_all('/@param (?P<type>\w+) \$(?P<var>\w+)/', $docs, $matches);
+ preg_match_all('/@param\h+(?P<type>\w+)\h+\$(?P<var>\w+)/', $docs, $matches);
// this is just a fix for PHP 5.3 (array_combine raises warning if called with
// two empty arrays
if($matches['var'] === array() && $matches['type'] === array()) {
diff --git a/tests/lib/appframework/utility/ControllerMethodReflectorTest.php b/tests/lib/appframework/utility/ControllerMethodReflectorTest.php
index c513e23cd6b..a584b5481ba 100644
--- a/tests/lib/appframework/utility/ControllerMethodReflectorTest.php
+++ b/tests/lib/appframework/utility/ControllerMethodReflectorTest.php
@@ -119,6 +119,20 @@ class ControllerMethodReflectorTest extends \Test\TestCase {
$this->assertEquals('double', $reader->getType('test'));
}
+ /**
+ * @Annotation
+ * @param string $foo
+ */
+ public function testReadTypeWhitespaceAnnotations(){
+ $reader = new ControllerMethodReflector();
+ $reader->reflect(
+ '\OC\AppFramework\Utility\ControllerMethodReflectorTest',
+ 'testReadTypeWhitespaceAnnotations'
+ );
+
+ $this->assertEquals('string', $reader->getType('foo'));
+ }
+
public function arguments($arg, $arg2='hi') {}
public function testReflectParameters() {