diff --git a/src/Commands/MetaModelCommand.php b/src/Commands/MetaModelCommand.php new file mode 100644 index 0000000..2116ce9 --- /dev/null +++ b/src/Commands/MetaModelCommand.php @@ -0,0 +1,98 @@ +option('migration')) { + $table = Str::plural(Str::snake(class_basename($this->argument('name')))); + + $this->call('meta:migration', [ + 'name' => "create_{$table}_table", + '--create' => $table, + ]); + } + + if ($this->option('controller')) { + $controller = Str::studly(class_basename($this->argument('name'))); + + $this->call('make:controller', [ + 'name' => "{$controller}Controller", + '--resource' => $this->option('resource'), + ]); + } + } + + /** + * Get the stub file for the generator. + * + * @return string + */ + protected function getStub() + { + return __DIR__.'/../stubs/model.stub'; + } + + /** + * Get the default namespace for the class. + * + * @param string $rootNamespace + * @return string + */ + protected function getDefaultNamespace($rootNamespace) + { + return $rootNamespace; + } + + /** + * Get the console command options. + * + * @return array + */ + protected function getOptions() + { + return [ + ['migration', 'm', InputOption::VALUE_NONE, 'Create a new migration file for the model.'], + + ['controller', 'c', InputOption::VALUE_NONE, 'Create a new controller for the model.'], + + ['resource', 'r', InputOption::VALUE_NONE, 'Indicates if the generated controller should be a resource controller'], + ]; + } +} diff --git a/src/MetaServiceProvider.php b/src/MetaServiceProvider.php index fba71de..502707d 100644 --- a/src/MetaServiceProvider.php +++ b/src/MetaServiceProvider.php @@ -19,6 +19,7 @@ class MetaServiceProvider extends ServiceProvider */ protected $commands = [ '\Glmdev\Meta\Commands\MetaMigrationCommand', + '\Glmdev\Meta\Commands\MetaModelCommand', ]; public function boot(){} diff --git a/src/stubs/model.stub b/src/stubs/model.stub new file mode 100644 index 0000000..430b33a --- /dev/null +++ b/src/stubs/model.stub @@ -0,0 +1,8 @@ +