File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -146,7 +146,7 @@ public function setDefault($option, $value)
146
146
$ reflClosure = new \ReflectionFunction ($ value );
147
147
$ params = $ reflClosure ->getParameters ();
148
148
149
- if (isset ($ params [0 ]) && null !== ( $ class = $ params [ 0 ]-> getClass ()) && Options::class === $ class -> name ) {
149
+ if (isset ($ params [0 ]) && Options::class === $ this -> getParameterClassName ( $ params [ 0 ]) ) {
150
150
// Initialize the option if no previous value exists
151
151
if (!isset ($ this ->defaults [$ option ])) {
152
152
$ this ->defaults [$ option ] = null ;
@@ -1066,4 +1066,20 @@ private static function isValueValidType($type, $value)
1066
1066
{
1067
1067
return (\function_exists ($ isFunction = 'is_ ' .$ type ) && $ isFunction ($ value )) || $ value instanceof $ type ;
1068
1068
}
1069
+
1070
+ /**
1071
+ * @return string|null
1072
+ */
1073
+ private function getParameterClassName (\ReflectionParameter $ parameter )
1074
+ {
1075
+ if (!method_exists ($ parameter , 'getType ' )) {
1076
+ return ($ class = $ parameter ->getClass ()) ? $ class ->name : null ;
1077
+ }
1078
+
1079
+ if (!($ type = $ parameter ->getType ()) || $ type ->isBuiltin ()) {
1080
+ return null ;
1081
+ }
1082
+
1083
+ return method_exists ($ type , 'getName ' ) ? $ type ->getName () : (string ) $ type ;
1084
+ }
1069
1085
}
You can’t perform that action at this time.
0 commit comments