Skip to content
This repository was archived by the owner on Sep 8, 2023. It is now read-only.

Commit 3a08bd1

Browse files
authored
Merge pull request #10 from RobertBoes/add-type-hinting
Add type hinting and return types
2 parents f8ef3ee + 4451b8c commit 3a08bd1

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/Console/MacrosCommand.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)