PublishRulesFile   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 14
c 1
b 0
f 0
dl 0
loc 48
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 11 1
A writeRulesFile() 0 11 1
1
<?php
2
3
namespace LaravelPropertyBag\Commands;
4
5
use LaravelPropertyBag\Helpers\NameResolver;
6
7
class PublishRulesFile extends PbagCommand
8
{
9
    /**
10
     * The name and signature of the console command.
11
     *
12
     * @var string
13
     */
14
    protected $signature = 'pbag:rules';
15
16
    /**
17
     * The console command description.
18
     *
19
     * @var string
20
     */
21
    protected $description = 'Make user-defined rules file in Settings/Resources.';
22
23
    /**
24
     * Execute the console command.
25
     */
26
    public function handle()
27
    {
28
        $this->makeDir('Settings');
29
30
        $this->makeDir('Settings/Resources');
31
32
        $namespace = NameResolver::getAppNamespace().'Settings\\Resources';
33
34
        $this->writeRulesFile($namespace);
35
36
        $this->info('Rules file successfully created!');
37
    }
38
39
    /**
40
     * Write the settings file into the settings folder.
41
     *
42
     * @param string $namespace
43
     */
44
    protected function writeRulesFile($namespace)
45
    {
46
        $stub = file_get_contents(
47
            __DIR__.'/../Stubs/Rules.php'
48
        );
49
50
        $stub = $this->replace('{{Namespace}}', $namespace, $stub);
51
52
        file_put_contents(
53
            base_path('app/Settings/Resources/Rules.php'),
54
            $stub
55
        );
56
    }
57
}
58