%PDF- %PDF-
Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/vendor/laravel/nova/src/Console/ |
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/vendor/laravel/nova/src/Console/ResourceCommand.php |
<?php namespace Laravel\Nova\Console; use Illuminate\Console\GeneratorCommand; use Illuminate\Support\Str; use Symfony\Component\Console\Input\InputOption; class ResourceCommand extends GeneratorCommand { use ResolvesStubPath; /** * The console command name. * * @var string */ protected $name = 'nova:resource'; /** * The console command description. * * @var string */ protected $description = 'Create a new resource class'; /** * The type of class being generated. * * @var string */ protected $type = 'Resource'; /** * A list of resource names which are protected. * * @var array */ protected $protectedNames = [ 'card', 'cards', 'dashboard', 'dashboards', 'metric', 'metrics', 'script', 'scripts', 'search', 'searches', 'style', 'styles', ]; /** * Execute the console command. * * @return bool|null */ public function handle() { parent::handle(); $this->callSilent('nova:base-resource', [ 'name' => 'Resource', ]); } /** * Build the class with the given name. * * @param string $name * @return string */ protected function buildClass($name) { $model = $this->option('model'); $modelNamespace = $this->getModelNamespace(); if (is_null($model)) { $model = $modelNamespace.str_replace('/', '\\', $this->argument('name')); } elseif (! Str::startsWith($model, [ $modelNamespace, '\\', ])) { $model = $modelNamespace.$model; } $resourceName = $this->argument('name'); if (in_array(strtolower($resourceName), $this->protectedNames)) { $this->warn("You *must* override the uriKey method for your {$resourceName} resource."); } $replace = [ 'DummyFullModel' => $model, '{{ namespacedModel }}' => $model, '{{namespacedModel}}' => $model, ]; return str_replace( array_keys($replace), array_values($replace), parent::buildClass($name) ); } /** * Get the stub file for the generator. * * @return string */ protected function getStub() { return $this->resolveStubPath('/stubs/nova/resource.stub'); } /** * Get the default namespace for the class. * * @param string $rootNamespace * @return string */ protected function getDefaultNamespace($rootNamespace) { return $rootNamespace.'\Nova'; } /** * Get the default namespace for the class. * * @param string $rootNamespace * @return string */ protected function getModelNamespace() { $rootNamespace = $this->laravel->getNamespace(); return is_dir(app_path('Models')) ? $rootNamespace.'Models\\' : $rootNamespace; } /** * Get the console command options. * * @return array */ protected function getOptions() { return [ ['model', 'm', InputOption::VALUE_REQUIRED, 'The model class being represented.'], ]; } }