summaryrefslogtreecommitdiff
path: root/vendor/thecodingmachine/safe/generated/dir.php
blob: 628dec537f5819153e39ed1e719d7d344f564318 (plain)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?php

namespace Safe;

use Safe\Exceptions\DirException;

/**
 * Changes PHP's current directory to
 * directory.
 *
 * @param string $directory The new current directory
 * @throws DirException
 *
 */
function chdir(string $directory): void
{
    error_clear_last();
    $result = \chdir($directory);
    if ($result === false) {
        throw DirException::createFromPhpError();
    }
}


/**
 * Changes the root directory of the current process to
 * directory, and changes the current
 * working directory to "/".
 *
 * This function is only available to GNU and BSD systems, and
 * only when using the CLI, CGI or Embed SAPI. Also, this function
 * requires root privileges.
 *
 * @param string $directory The path to change the root directory to.
 * @throws DirException
 *
 */
function chroot(string $directory): void
{
    error_clear_last();
    $result = \chroot($directory);
    if ($result === false) {
        throw DirException::createFromPhpError();
    }
}


/**
 * Gets the current working directory.
 *
 * @return string Returns the current working directory on success.
 *
 * On some Unix variants, getcwd will return
 * FALSE if any one of the parent directories does not have the
 * readable or search mode set, even if the current directory
 * does. See chmod for more information on
 * modes and permissions.
 * @throws DirException
 *
 */
function getcwd(): string
{
    error_clear_last();
    $result = \getcwd();
    if ($result === false) {
        throw DirException::createFromPhpError();
    }
    return $result;
}


/**
 * Opens up a directory handle to be used in subsequent
 * closedir, readdir, and
 * rewinddir calls.
 *
 * @param string $path The directory path that is to be opened
 * @param resource $context For a description of the context parameter,
 * refer to the streams section of
 * the manual.
 * @return resource Returns a directory handle resource on success
 * @throws DirException
 *
 */
function opendir(string $path, $context = null)
{
    error_clear_last();
    if ($context !== null) {
        $result = \opendir($path, $context);
    } else {
        $result = \opendir($path);
    }
    if ($result === false) {
        throw DirException::createFromPhpError();
    }
    return $result;
}


/**
 * Resets the directory stream indicated by
 * dir_handle to the beginning of the
 * directory.
 *
 * @param resource $dir_handle The directory handle resource previously opened
 * with opendir. If the directory handle is
 * not specified, the last link opened by opendir
 * is assumed.
 * @throws DirException
 *
 */
function rewinddir($dir_handle = null): void
{
    error_clear_last();
    if ($dir_handle !== null) {
        $result = \rewinddir($dir_handle);
    } else {
        $result = \rewinddir();
    }
    if ($result === false) {
        throw DirException::createFromPhpError();
    }
}


/**
 * Returns an array of files and directories from the
 * directory.
 *
 * @param string $directory The directory that will be scanned.
 * @param int $sorting_order By default, the sorted order is alphabetical in ascending order.  If
 * the optional sorting_order is set to
 * SCANDIR_SORT_DESCENDING, then the sort order is
 * alphabetical in descending order. If it is set to
 * SCANDIR_SORT_NONE then the result is unsorted.
 * @param resource $context For a description of the context parameter,
 * refer to the streams section of
 * the manual.
 * @return array Returns an array of filenames on success. If directory is not a directory, then
 * boolean FALSE is returned, and an error of level
 * E_WARNING is generated.
 * @throws DirException
 *
 */
function scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, $context = null): array
{
    error_clear_last();
    if ($context !== null) {
        $result = \scandir($directory, $sorting_order, $context);
    } else {
        $result = \scandir($directory, $sorting_order);
    }
    if ($result === false) {
        throw DirException::createFromPhpError();
    }
    return $result;
}