mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Add splat operator (...) support (#860)
* Add splat operator (...) support * Add test
This commit is contained in:
committed by
Barry vd. Heuvel
parent
fcf3fae860
commit
e7734d3c20
+2
-2
@@ -314,9 +314,9 @@ class Method
|
|||||||
$params = array();
|
$params = array();
|
||||||
$paramsWithDefault = array();
|
$paramsWithDefault = array();
|
||||||
foreach ($method->getParameters() as $param) {
|
foreach ($method->getParameters() as $param) {
|
||||||
$paramStr = '$' . $param->getName();
|
$paramStr = $param->isVariadic() ? '...$' . $param->getName() : '$' . $param->getName();
|
||||||
$params[] = $paramStr;
|
$params[] = $paramStr;
|
||||||
if ($param->isOptional()) {
|
if ($param->isOptional() && !$param->isVariadic()) {
|
||||||
$default = $param->isDefaultValueAvailable() ? $param->getDefaultValue() : null;
|
$default = $param->isDefaultValueAvailable() ? $param->getDefaultValue() : null;
|
||||||
if (is_bool($default)) {
|
if (is_bool($default)) {
|
||||||
$default = $default ? 'true' : 'false';
|
$default = $default ? 'true' : 'false';
|
||||||
|
|||||||
@@ -32,15 +32,16 @@ class ExampleTest extends \PHPUnit_Framework_TestCase
|
|||||||
*
|
*
|
||||||
* @param string $last
|
* @param string $last
|
||||||
* @param string $first
|
* @param string $first
|
||||||
|
* @param string $middle
|
||||||
* @static
|
* @static
|
||||||
*/';
|
*/';
|
||||||
$this->assertEquals($output, $method->getDocComment(''));
|
$this->assertEquals($output, $method->getDocComment(''));
|
||||||
$this->assertEquals('setName', $method->getName());
|
$this->assertEquals('setName', $method->getName());
|
||||||
$this->assertEquals('\\'.ExampleClass::class, $method->getDeclaringClass());
|
$this->assertEquals('\\'.ExampleClass::class, $method->getDeclaringClass());
|
||||||
$this->assertEquals('$last, $first', $method->getParams(true));
|
$this->assertEquals('$last, $first, ...$middle', $method->getParams(true));
|
||||||
$this->assertEquals(['$last', '$first'], $method->getParams(false));
|
$this->assertEquals(['$last', '$first', '...$middle'], $method->getParams(false));
|
||||||
$this->assertEquals('$last, $first = \'Barry\'', $method->getParamsWithDefault(true));
|
$this->assertEquals('$last, $first = \'Barry\', ...$middle', $method->getParamsWithDefault(true));
|
||||||
$this->assertEquals(['$last', '$first = \'Barry\''], $method->getParamsWithDefault(false));
|
$this->assertEquals(['$last', '$first = \'Barry\'', '...$middle'], $method->getParamsWithDefault(false));
|
||||||
$this->assertEquals(true, $method->shouldReturn());
|
$this->assertEquals(true, $method->shouldReturn());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,9 +51,10 @@ class ExampleClass
|
|||||||
/**
|
/**
|
||||||
* @param string $last
|
* @param string $last
|
||||||
* @param string $first
|
* @param string $first
|
||||||
|
* @param string $middle
|
||||||
*/
|
*/
|
||||||
public function setName($last, $first = 'Barry')
|
public function setName($last, $first = 'Barry', ...$middle)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user