Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
10 / 10 |
|
100.00% |
5 / 5 |
CRAP | |
100.00% |
1 / 1 |
Templates | |
100.00% |
10 / 10 |
|
100.00% |
5 / 5 |
9 | |
100.00% |
1 / 1 |
__construct | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
2 | |||
getStubs | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 | |||
getFirstStub | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 | |||
getDest | |
100.00% |
3 / 3 |
|
100.00% |
1 / 1 |
4 | |||
templatePath | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 |
1 | <?php |
2 | |
3 | namespace San\Crud\Generators; |
4 | |
5 | use San\Crud\Utils\FileUtils; |
6 | use San\Crud\Utils\TextUtils; |
7 | |
8 | class Templates { |
9 | public function __construct(public string $path) { |
10 | if (!is_dir($path)) { |
11 | throw new \Exception("Templates path not found: $path"); |
12 | } |
13 | } |
14 | |
15 | public function getStubs(string $suffix) { |
16 | $files = FileUtils::getFiles("$this->path/stubs/$suffix", ['php']); |
17 | return array_values(array_filter($files, fn($file) => !\str_contains($file, 'partials'))); |
18 | } |
19 | |
20 | public function getFirstStub(string $suffix) { |
21 | $stubs = $this->getStubs($suffix); |
22 | return $stubs[0] ?? NULL; |
23 | } |
24 | |
25 | public function getDest(string $type, mixed $stub, array $replacements = [], string $suffix = '') { |
26 | $dest = \str_contains($type, 'views/') ? resource_path('views') . "/$suffix" : ($type === 'routes' ? base_path("routes/crud") : ($type === 'Controllers' ? app_path('Http/Controllers') : app_path($type))); |
27 | $str = sprintf('%s/%s', $dest, basename($stub)); |
28 | return TextUtils::replaceBlanks($str, $replacements); |
29 | } |
30 | |
31 | public function templatePath() { |
32 | return $this->path; |
33 | } |
34 | } |