ComponentDirectory::getAbsoluteDirectory()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
nc 1
1
<?php
2
3
namespace Spatie\BladeX\ComponentDirectory;
4
5
use Illuminate\Support\Facades\File;
6
use Illuminate\Support\Str;
7
use Symfony\Component\Finder\SplFileInfo;
8
9
abstract class ComponentDirectory
10
{
11
    /** @var string */
12
    protected $viewDirectory;
13
14
    /** @var bool */
15
    protected $includeSubdirectories;
16
17
    abstract public function getAbsoluteDirectory(): string;
18
19
    public function getViewName(SplFileInfo $viewFile): string
20
    {
21
        $subDirectory = $viewFile->getRelativePath();
22
23
        $view = Str::replaceLast('.blade.php', '', $viewFile->getFilename());
24
25
        return implode('.', array_filter([
26
            $this->viewDirectory,
27
            $subDirectory,
28
            $view,
29
        ]));
30
    }
31
32
    public function getFiles(): array
33
    {
34
        return $this->includeSubdirectories
35
            ? File::allFiles($this->getAbsoluteDirectory())
36
            : File::files($this->getAbsoluteDirectory());
37
    }
38
}
39