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)
146146 $ reflClosure = new \ReflectionFunction ($ value );
147147 $ params = $ reflClosure ->getParameters ();
148148
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 ]) ) {
150150 // Initialize the option if no previous value exists
151151 if (!isset ($ this ->defaults [$ option ])) {
152152 $ this ->defaults [$ option ] = null ;
@@ -1066,4 +1066,20 @@ private static function isValueValidType($type, $value)
10661066 {
10671067 return (\function_exists ($ isFunction = 'is_ ' .$ type ) && $ isFunction ($ value )) || $ value instanceof $ type ;
10681068 }
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+ }
10691085}
You can’t perform that action at this time.
0 commit comments