1: <?php
2:
3: namespace Aurora\System\Console\Commands;
4:
5: use Aurora\System\Api;
6: use Aurora\System\Models\Hook;
7: use Illuminate\Container\Container;
8: use Illuminate\Support\Facades\App;
9: use Symfony\Component\Console\Input\InputInterface;
10: use Symfony\Component\Console\Input\InputOption;
11: use Symfony\Component\Console\Output\OutputInterface;
12:
13: class ModelsCommand extends \Barryvdh\LaravelIdeHelper\Console\ModelsCommand
14: {
15: public function __construct(Container $appContainer)
16: {
17: $appContainer['config']->set('ide-helper.model_hooks', [Hook::class]);
18: $this->setLaravel($appContainer);
19:
20: parent::__construct($appContainer['filesystem']);
21: }
22:
23: protected function execute(InputInterface $input, OutputInterface $output): int
24: {
25: if ($this->option('all-models')) {
26: $aModules = Api::GetModuleManager()->GetModulesPaths();
27: $aModulesModelsPaths = array_map(function ($sModule, $sPath) {
28: return $sPath . $sModule . DIRECTORY_SEPARATOR . 'Models';
29: }, array_keys($aModules), $aModules);
30: App::make('config')->set('ide-helper.model_locations', [$aModulesModelsPaths]);
31: }
32:
33: return parent::execute($input, $output);
34: }
35:
36: /**
37: * Get the console command options.
38: *
39: * @return array
40: */
41: protected function getOptions()
42: {
43: $options = parent::getOptions();
44: $options[] = ['all-models', 'A', InputOption::VALUE_NONE, 'Find and generate phpdocs for all models'];
45:
46: return $options;
47: }
48: }
49: