-
Notifications
You must be signed in to change notification settings - Fork 8
/
DirInterface.php
66 lines (55 loc) · 1.8 KB
/
DirInterface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
/*
* This file is part of Chevere.
*
* (c) Rodolfo Berrios <rodolfo@chevere.org>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chevere\Components\Dir\Interfaces;
use Chevere\Components\Path\Interfaces\PathInterface;
use Chevere\Components\Dir\Exceptions\DirUnableToRemoveException;
use Chevere\Components\Dir\Exceptions\DirUnableToCreateException;
use Chevere\Components\File\Exceptions\FileUnableToRemoveException;
interface DirInterface
{
public function __construct(PathInterface $path);
/**
* Provides access to the PathInterface instance.
*/
public function path(): PathInterface;
/**
* Returns a boolean indicating whether the directory exists.
*/
public function exists(): bool;
/**
* Creates the directory.
*
* @throws DirExistsException if the directory already exists
* @throws DirUnableToCreateException if unable to create the directoy
*/
public function create(): void;
/**
* Removes the directory.
*
* @return array An array with all the elements removed
*
* @throws DirUnableToRemoveException if unable to remove the directory
*/
public function remove(): array;
/**
* Removes the contents from a path without deleting the path.
*
* @return array an array with all the dir contents removed
*
* @throws DirUnableToRemoveException if unable to remove the directory
* @throws FileUnableToRemoveException if unable to remove a file in the directory
*/
public function removeContents(): array;
/**
* Gets a child DirInterface for the added path.
*/
public function getChild(string $path): DirInterface;
}