Browse Source

Strict OCP\AppFramework\Utility\IControllerMethodReflector

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
pull/8473/head
Roeland Jago Douma 8 years ago
parent
commit
aa060f5332
No known key found for this signature in database GPG Key ID: F941078878347C0C
  1. 20
      lib/private/AppFramework/Utility/ControllerMethodReflector.php
  2. 9
      lib/public/AppFramework/Utility/IControllerMethodReflector.php

20
lib/private/AppFramework/Utility/ControllerMethodReflector.php

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@ -42,7 +43,7 @@ class ControllerMethodReflector implements IControllerMethodReflector {
* @param object $object an object or classname
* @param string $method the method which we want to inspect
*/
public function reflect($object, $method){
public function reflect($object, string $method){
$reflection = new \ReflectionMethod($object, $method);
$docs = $reflection->getDocComment();
@ -50,7 +51,7 @@ class ControllerMethodReflector implements IControllerMethodReflector {
preg_match_all('/^\h+\*\h+@(?P<annotation>[A-Z]\w+)((?P<parameter>.*))?$/m', $docs, $matches);
foreach($matches['annotation'] as $key => $annontation) {
$annotationValue = $matches['parameter'][$key];
if(isset($annotationValue[0]) && $annotationValue[0] === '(' && $annotationValue[strlen($annotationValue) - 1] === ')') {
if(isset($annotationValue[0]) && $annotationValue[0] === '(' && $annotationValue[\strlen($annotationValue) - 1] === ')') {
$cutString = substr($annotationValue, 1, -1);
$cutString = str_replace(' ', '', $cutString);
$splittedArray = explode(',', $cutString);
@ -78,10 +79,9 @@ class ControllerMethodReflector implements IControllerMethodReflector {
}
}
$default = null;
if($param->isOptional()) {
$default = $param->getDefaultValue();
} else {
$default = null;
}
$this->parameters[$param->name] = $default;
}
@ -94,18 +94,18 @@ class ControllerMethodReflector implements IControllerMethodReflector {
* @return string|null type in the type parameters (@param int $something)
* would return int or null if not existing
*/
public function getType($parameter) {
public function getType(string $parameter) {
if(array_key_exists($parameter, $this->types)) {
return $this->types[$parameter];
} else {
return null;
}
return null;
}
/**
* @return array the arguments of the method with key => default value
*/
public function getParameters() {
public function getParameters(): array {
return $this->parameters;
}
@ -114,7 +114,7 @@ class ControllerMethodReflector implements IControllerMethodReflector {
* @param string $name the name of the annotation
* @return bool true if the annotation is found
*/
public function hasAnnotation($name) {
public function hasAnnotation(string $name): bool {
return array_key_exists($name, $this->annotations);
}
@ -125,7 +125,7 @@ class ControllerMethodReflector implements IControllerMethodReflector {
* @param string $key the string of the annotation
* @return string
*/
public function getAnnotationParameter($name, $key) {
public function getAnnotationParameter(string $name, string $key): string {
if(isset($this->annotations[$name][$key])) {
return $this->annotations[$name][$key];
}

9
lib/public/AppFramework/Utility/IControllerMethodReflector.php

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@ -40,7 +41,7 @@ interface IControllerMethodReflector {
* @return void
* @since 8.0.0
*/
public function reflect($object, $method);
public function reflect($object, string $method);
/**
* Inspects the PHPDoc parameters for types
@ -51,13 +52,13 @@ interface IControllerMethodReflector {
* would return int or null if not existing
* @since 8.0.0
*/
public function getType($parameter);
public function getType(string $parameter);
/**
* @return array the arguments of the method with key => default value
* @since 8.0.0
*/
public function getParameters();
public function getParameters(): array;
/**
* Check if a method contains an annotation
@ -66,6 +67,6 @@ interface IControllerMethodReflector {
* @return bool true if the annotation is found
* @since 8.0.0
*/
public function hasAnnotation($name);
public function hasAnnotation(string $name): bool;
}
Loading…
Cancel
Save