mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Add option for only eloquent (#1636)
* Add option for only eloquent * composer fix-style * Add snapshot * Add option to models command * composer fix-style * Fix namespace --------- Co-authored-by: laravel-ide-helper <[email protected]>
This commit is contained in:
co-authored by
laravel-ide-helper
parent
14fdb572bb
commit
347483be03
@@ -12,6 +12,7 @@
|
||||
namespace Barryvdh\LaravelIdeHelper\Console;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\Contracts\ModelHookInterface;
|
||||
use Barryvdh\LaravelIdeHelper\Generator;
|
||||
use Barryvdh\LaravelIdeHelper\Parsers\PhpDocReturnTypeParser;
|
||||
use Barryvdh\Reflection\DocBlock;
|
||||
use Barryvdh\Reflection\DocBlock\Context;
|
||||
@@ -19,6 +20,7 @@ use Barryvdh\Reflection\DocBlock\Serializer as DocBlockSerializer;
|
||||
use Barryvdh\Reflection\DocBlock\Tag;
|
||||
use Composer\ClassMapGenerator\ClassMapGenerator;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Contracts\Config\Repository;
|
||||
use Illuminate\Contracts\Database\Eloquent\Castable;
|
||||
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
|
||||
use Illuminate\Contracts\Database\Eloquent\CastsInboundAttributes;
|
||||
@@ -46,6 +48,7 @@ use Illuminate\Filesystem\Filesystem;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\Factory as ViewFactory;
|
||||
use phpDocumentor\Reflection\Types\ContextFactory;
|
||||
use ReflectionClass;
|
||||
use ReflectionNamedType;
|
||||
@@ -82,6 +85,14 @@ class ModelsCommand extends Command
|
||||
*/
|
||||
protected $files;
|
||||
|
||||
/**
|
||||
* @var Repository
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/** @var ViewFactory */
|
||||
protected $view;
|
||||
|
||||
/**
|
||||
* The console command name.
|
||||
*
|
||||
@@ -131,10 +142,12 @@ class ModelsCommand extends Command
|
||||
/**
|
||||
* @param Filesystem $files
|
||||
*/
|
||||
public function __construct(Filesystem $files)
|
||||
public function __construct(Filesystem $files, Repository $config, ViewFactory $view)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->config = $config;
|
||||
$this->files = $files;
|
||||
$this->view = $view;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -187,6 +200,27 @@ class ModelsCommand extends Command
|
||||
$this->error("Failed to write model information to $filename");
|
||||
}
|
||||
}
|
||||
|
||||
$helperFilename = $this->config->get('ide-helper.filename');
|
||||
$writeHelper = $this->option('write-eloquent-helper');
|
||||
|
||||
if (!$writeHelper && !$this->files->exists($helperFilename) && ($this->write || $this->write_mixin)) {
|
||||
if ($this->confirm("{$helperFilename} does not exist.
|
||||
Do you want to generate a minimal helper to generate the Eloquent methods?")) {
|
||||
$writeHelper = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($writeHelper) {
|
||||
$generator = new Generator($this->config, $this->view, $this->getOutput());
|
||||
$content = $generator->generateEloquent();
|
||||
$written = $this->files->put($helperFilename, $content);
|
||||
if ($written !== false) {
|
||||
$this->info("Eloquent helper was written to $helperFilename");
|
||||
} else {
|
||||
$this->error("Failed to write eloquent helper to $helperFilename");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -217,6 +251,9 @@ class ModelsCommand extends Command
|
||||
['write-mixin', 'M', InputOption::VALUE_NONE,
|
||||
"Write models to {$this->filename} and adds @mixin to each model, avoiding IDE duplicate declaration warnings",
|
||||
],
|
||||
['write-eloquent-helper', 'E', InputOption::VALUE_NONE,
|
||||
'Write Eloquent helper file to _ide_helper.php',
|
||||
],
|
||||
['nowrite', 'N', InputOption::VALUE_NONE, 'Don\'t write to Model file'],
|
||||
['reset', 'R', InputOption::VALUE_NONE, 'Remove the original phpdocs instead of appending'],
|
||||
['smart-reset', 'r', InputOption::VALUE_NONE, 'Retained for compatibility, while it no longer has any effect'],
|
||||
|
||||
Reference in New Issue
Block a user