mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-17 17:47:13 +00:00
Support variadic parameters in models command (#1234)
This commit is contained in:
@@ -10,6 +10,9 @@ All notable changes to this project will be documented in this file.
|
|||||||
### Fixed
|
### Fixed
|
||||||
- Use platformName to determine db type when casting boolean types [\#1212 / stockalexander](https://github.com/barryvdh/laravel-ide-helper/pull/1212)
|
- Use platformName to determine db type when casting boolean types [\#1212 / stockalexander](https://github.com/barryvdh/laravel-ide-helper/pull/1212)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Add support of variadic parameters in `ide-helper:models` [\#1234 / shaffe-fr](https://github.com/barryvdh/laravel-ide-helper/pull/1234)
|
||||||
|
|
||||||
2021-04-09, 2.10.0
|
2021-04-09, 2.10.0
|
||||||
------------------
|
------------------
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -166,6 +166,7 @@ php artisan ide-helper:models "App\Models\Post"
|
|||||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post newQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post newQuery()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post query()
|
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post query()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post whereTitle($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post whereTitle($value)
|
||||||
|
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Post forAuthors(\User ...$authors)
|
||||||
* …
|
* …
|
||||||
*/
|
*/
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -935,7 +935,8 @@ class ModelsCommand extends Command
|
|||||||
$paramsWithDefault = [];
|
$paramsWithDefault = [];
|
||||||
/** @var \ReflectionParameter $param */
|
/** @var \ReflectionParameter $param */
|
||||||
foreach ($method->getParameters() as $param) {
|
foreach ($method->getParameters() as $param) {
|
||||||
$paramStr = '$' . $param->getName();
|
$paramStr = $param->isVariadic() ? '...$' . $param->getName() : '$' . $param->getName();
|
||||||
|
|
||||||
if ($paramType = $this->getParamType($method, $param)) {
|
if ($paramType = $this->getParamType($method, $param)) {
|
||||||
$paramStr = $paramType . ' ' . $paramStr;
|
$paramStr = $paramType . ' ' . $paramStr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Variadic\Models;
|
||||||
|
|
||||||
|
use DateTime;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Simple extends Model
|
||||||
|
{
|
||||||
|
public function scopeWhereVariadic(Builder $query, ...$values): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scopeWhereTypedVariadic(Builder $query, int ...$values): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Variadic;
|
||||||
|
|
||||||
|
use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
|
||||||
|
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\AbstractModelsCommand;
|
||||||
|
|
||||||
|
class Test extends AbstractModelsCommand
|
||||||
|
{
|
||||||
|
public function test(): void
|
||||||
|
{
|
||||||
|
$command = $this->app->make(ModelsCommand::class);
|
||||||
|
|
||||||
|
$tester = $this->runCommand($command, [
|
||||||
|
'--write' => true,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->assertSame(0, $tester->getStatusCode());
|
||||||
|
$this->assertStringContainsString('Written new phpDocBlock to', $tester->getDisplay());
|
||||||
|
$this->assertMatchesMockedSnapshot();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Variadic\Models;
|
||||||
|
|
||||||
|
use DateTime;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Variadic\Models\Simple
|
||||||
|
*
|
||||||
|
* @property integer $id
|
||||||
|
* @method static Builder|Simple newModelQuery()
|
||||||
|
* @method static Builder|Simple newQuery()
|
||||||
|
* @method static Builder|Simple query()
|
||||||
|
* @method static Builder|Simple whereId($value)
|
||||||
|
* @method static Builder|Simple whereTypedVariadic(int ...$values)
|
||||||
|
* @method static Builder|Simple whereVariadic(...$values)
|
||||||
|
* @mixin \Eloquent
|
||||||
|
*/
|
||||||
|
class Simple extends Model
|
||||||
|
{
|
||||||
|
public function scopeWhereVariadic(Builder $query, ...$values): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scopeWhereTypedVariadic(Builder $query, int ...$values): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user