@@ -102,12 +102,12 @@ public function handle()
102102 $ this ->writeLine ($ comment , $ this ->indent );
103103
104104 if (strpos ($ comment , '@instantiated ' ) !== false ) {
105- $ this ->generateFunction ($ name , $ function ->getParameters (), "public " );
105+ $ this ->generateFunction ($ name , $ function ->getParameters (), "public " , $ function -> getReturnType () );
106106 continue ;
107107 }
108108 }
109109
110- $ this ->generateFunction ($ name , $ function ->getParameters (), "public static " );
110+ $ this ->generateFunction ($ name , $ function ->getParameters (), "public static " , $ function -> getReturnType () );
111111 }
112112 });
113113 });
@@ -154,11 +154,13 @@ protected function generateClass($name, $callback = null)
154154
155155 /**
156156 * @param string $name
157- * @param array $parameters
157+ * @param \ReflectionParameter[] $parameters
158158 * @param string $type
159+ * @param null|string $returnType
159160 * @param null|Callable $callback
161+ * @throws \ReflectionException
160162 */
161- protected function generateFunction ($ name , $ parameters , $ type = '' , $ callback = null )
163+ protected function generateFunction ($ name , $ parameters , $ type = '' , $ returnType = null , $ callback = null )
162164 {
163165 $ this ->write (($ type ? "$ type " : '' ) . "function $ name( " , $ this ->indent );
164166
@@ -172,6 +174,10 @@ protected function generateFunction($name, $parameters, $type = '', $callback =
172174 $ this ->write ('... ' );
173175 }
174176
177+ if ($ parameter ->hasType ()) {
178+ $ this ->write ($ parameter ->getType () . " " );
179+ }
180+
175181 $ this ->write ("$ " . $ parameter ->getName ());
176182 if ($ parameter ->isOptional () && !$ parameter ->isVariadic ()) {
177183 $ this ->write (" = " . var_export ($ parameter ->getDefaultValue (), true ));
@@ -180,7 +186,11 @@ protected function generateFunction($name, $parameters, $type = '', $callback =
180186 $ index ++;
181187 }
182188
183- $ this ->writeLine (") { " );
189+ $ this ->write (") " );
190+ if ($ returnType ) {
191+ $ this ->write (": $ returnType " );
192+ }
193+ $ this ->writeLine (" { " );
184194
185195 if ($ callback ) {
186196 $ callback ();
0 commit comments