Test Failed
Push — master ( 470d4b...33c92c )
by Terzi
04:31
created

src/Console/ResourceMakeCommand.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace Terranet\Administrator\Console;
4
5
use Illuminate\Console\GeneratorCommand;
6
7
class ResourceMakeCommand extends GeneratorCommand
8
{
9
    /**
10
     * The console command name.
11
     *
12
     * @var string
13
     */
14
    protected $signature = 'administrator:resource {name} {model?}';
15
16
    /**
17
     * The console command description.
18
     *
19
     * @var string
20
     */
21
    protected $description = 'Create new administrator resource.';
22
23
    /**
24
     * The type of class being generated.
25
     *
26
     * @var string
27
     */
28
    protected $type = 'Module';
29
30
    /**
31
     * Get the stub file for the generator.
32
     *
33
     * @return string
34
     */
35
    protected function getStub()
36
    {
37
        return __DIR__.'/stubs/module.stub';
38
    }
39
40
    /**
41
     * Get the default namespace for the class.
42
     *
43
     * @param string $rootNamespace
44
     *
45
     * @return string
46
     */
47
    protected function getDefaultNamespace($rootNamespace)
48
    {
49
        return $rootNamespace.'\Http\Terranet\Administrator\Modules';
50
    }
51
52
    /**
53
     * Build the class with the given name.
54
     *
55
     * @param string $name
56
     *
57
     * @return string
58
     */
59
    protected function buildClass($name)
60
    {
61
        $stub = parent::buildClass($name);
62
63
        if ($model = $this->argument('model')) {
64
            if (!starts_with($model, $namespace = $this->laravel->getNamespace())) {
0 ignored issues
show
The function starts_with was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

64
            if (!/** @scrutinizer ignore-call */ starts_with($model, $namespace = $this->laravel->getNamespace())) {
Loading history...
65
                $model = "{$namespace}\\{$model}";
66
            }
67
        }
68
69
        return $this->replaceModel($stub, $model);
70
    }
71
72
    /**
73
     * Replace the model name for the given stub.
74
     *
75
     * @param string $stub
76
     * @param string $name
77
     *
78
     * @return string
79
     */
80
    protected function replaceModel($stub, $name)
81
    {
82
        return str_replace('DummyModel', $name ?: '\App\User', $stub);
83
    }
84
85
    /**
86
     * Get the console command options.
87
     *
88
     * @return array
89
     */
90
    protected function getOptions()
91
    {
92
        return [];
93
    }
94
}
95