RepositoryGeneratorController::saveFile()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 2
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace CSlant\LaraGenAdv\Http\Controllers\Generator;
4
5
use CSlant\LaraGenAdv\Http\Controllers\Detect\DetectController;
6
use Illuminate\Support\Str;
7
8
class RepositoryGeneratorController extends GeneratorController
9
{
10
    protected DetectController $detectController;
11
12
    public function __construct(
13
        DetectController $detectController
14
    ) {
15
        $this->detectController = $detectController;
16
    }
17
18
    public function index()
19
    {
20
        $this->generateRepository('user');
21
    }
22
23
    /**
24
     * @param $modelName
25
     * @return void
26
     */
27
    public function generateRepository($modelName)
28
    {
29
        $modelName = Str::studly($modelName);
30
        $fileName = "{$modelName}Repository.php";
31
32
        $fileContent = "<?php\n\nnamespace App\Repositories;\n\nuse App\\Models\\$modelName;\n\nclass {$modelName}Repository\n{\n    protected \$model;\n\n    public function __construct($modelName \$model)\n    {\n        \$this->model = \$model;\n    }\n\n    // các phương thức truy vấn\n}";
33
34
        $this->saveFile($fileName, $fileContent);
35
    }
36
37
    /**
38
     * @param $fileName
39
     * @param $fileContent
40
     * @return void
41
     */
42
    public function saveFile($fileName, $fileContent)
43
    {
44
        $filePath = app_path("Repositories/{$fileName}");
45
46
        if (!is_dir(dirname($filePath))) {
47
            mkdir(dirname($filePath), 0777, true);
48
        }
49
50
        file_put_contents($filePath, $fileContent);
51
    }
52
}
53