Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
9 / 9
CRAP
100.00% covered (success)
100.00%
1 / 1
LocalStorage
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
9 / 9
20
100.00% covered (success)
100.00%
1 / 1
 getClassType
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
4
 put
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 get
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 list
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 create
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 set
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 append
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 prepend
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 extension
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   phpOMS\System\File\Local
8 * @copyright Dennis Eichhorn
9 * @license   OMS License 2.0
10 * @version   1.0.0
11 * @link      https://jingga.app
12 */
13declare(strict_types=1);
14
15namespace phpOMS\System\File\Local;
16
17use phpOMS\System\File\PathException;
18use phpOMS\System\File\StorageAbstract;
19
20/**
21 * Filesystem class.
22 *
23 * Performing operations on the file system
24 *
25 * @package phpOMS\System\File\Local
26 * @license OMS License 2.0
27 * @link    https://jingga.app
28 * @since   1.0.0
29 */
30class LocalStorage extends StorageAbstract
31{
32    /**
33     * {@inheritdoc}
34     */
35    protected static function getClassType(string $path) : string
36    {
37        return \is_dir($path) || (!\is_file($path) && \stripos($path, '.') === false) ? Directory::class : File::class;
38    }
39
40    /**
41     * {@inheritdoc}
42     *
43     * @throws PathException
44     */
45    public static function put(string $path, string $content, int $mode = 0) : bool
46    {
47        if (\is_dir($path)) {
48            throw new PathException($path);
49        }
50
51        return File::put($path, $content, $mode);
52    }
53
54    /**
55     * {@inheritdoc}
56     *
57     * @throws PathException
58     */
59    public static function get(string $path) : string
60    {
61        if (\is_dir($path)) {
62            throw new PathException($path);
63        }
64
65        return File::get($path);
66    }
67
68    /**
69     * {@inheritdoc}
70     *
71     * @throws PathException
72     */
73    public static function list(string $path, string $filter = '*', bool $recursive = false) : array
74    {
75        if (\is_file($path)) {
76            throw new PathException($path);
77        }
78
79        return Directory::list($path, $filter, $recursive);
80    }
81
82    /**
83     * {@inheritdoc}
84     */
85    public static function create(string $path) : bool
86    {
87        return \stripos($path, '.') === false
88            ? Directory::create($path, 0755, true)
89            : File::create($path);
90    }
91
92    /**
93     * {@inheritdoc}
94     *
95     * @throws PathException
96     */
97    public static function set(string $path, string $content) : bool
98    {
99        if (\is_dir($path)) {
100            throw new PathException($path);
101        }
102
103        return File::set($path, $content);
104    }
105
106    /**
107     * {@inheritdoc}
108     *
109     * @throws PathException
110     */
111    public static function append(string $path, string $content) : bool
112    {
113        if (\is_dir($path)) {
114            throw new PathException($path);
115        }
116
117        return File::append($path, $content);
118    }
119
120    /**
121     * {@inheritdoc}
122     *
123     * @throws PathException
124     */
125    public static function prepend(string $path, string $content) : bool
126    {
127        if (\is_dir($path)) {
128            throw new PathException($path);
129        }
130
131        return File::prepend($path, $content);
132    }
133
134    /**
135     * {@inheritdoc}
136     *
137     * @throws PathException
138     */
139    public static function extension(string $path) : string
140    {
141        if (\is_dir($path)) {
142            throw new PathException($path);
143        }
144
145        return File::extension($path);
146    }
147}