StatusCodes::get()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 3
c 0
b 0
f 0
nc 2
nop 1
dl 0
loc 7
ccs 4
cts 4
cp 1
crap 2
rs 10
1
<?php
2
3
namespace Comodojo\Zip\Base;
4
5
use \ZipArchive;
6
7
/**
8
 * comodojo/zip - ZipArchive toolbox
9
 *
10
 * @package     Comodojo Spare Parts
11
 * @author      Marco Giovinazzi <[email protected]>
12
 * @license     MIT
13
 *
14
 * LICENSE:
15
 *
16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
 * THE SOFTWARE.
23
 */
24
25
class StatusCodes
26
{
27
28
    /**
29
     * Array of well known zip status codes
30
     *
31
     * @const array
32
     */
33
    const ZIP_STATUS_CODES = [
34
        ZipArchive::ER_OK           => 'No error',
35
        ZipArchive::ER_MULTIDISK    => 'Multi-disk zip archives not supported',
36
        ZipArchive::ER_RENAME       => 'Renaming temporary file failed',
37
        ZipArchive::ER_CLOSE        => 'Closing zip archive failed',
38
        ZipArchive::ER_SEEK         => 'Seek error',
39
        ZipArchive::ER_READ         => 'Read error',
40
        ZipArchive::ER_WRITE        => 'Write error',
41
        ZipArchive::ER_CRC          => 'CRC error',
42
        ZipArchive::ER_ZIPCLOSED    => 'Containing zip archive was closed',
43
        ZipArchive::ER_NOENT        => 'No such file',
44
        ZipArchive::ER_EXISTS       => 'File already exists',
45
        ZipArchive::ER_OPEN         => 'Can\'t open file',
46
        ZipArchive::ER_TMPOPEN      => 'Failure to create temporary file',
47
        ZipArchive::ER_ZLIB         => 'Zlib error',
48
        ZipArchive::ER_MEMORY       => 'Malloc failure',
49
        ZipArchive::ER_CHANGED      => 'Entry has been changed',
50
        ZipArchive::ER_COMPNOTSUPP  => 'Compression method not supported',
51
        ZipArchive::ER_EOF          => 'Premature EOF',
52
        ZipArchive::ER_INVAL        => 'Invalid argument',
53
        ZipArchive::ER_NOZIP        => 'Not a zip archive',
54
        ZipArchive::ER_INTERNAL     => 'Internal error',
55
        ZipArchive::ER_INCONS       => 'Zip archive inconsistent',
56
        ZipArchive::ER_REMOVE       => 'Can\'t remove file',
57
        ZipArchive::ER_DELETED      => 'Entry has been deleted'
58
    ];
59
60
    /**
61
     * Get status from zip status code
62
     *
63
     * @param int $code ZIP status code
64
     *
65
     * @return string
66
     */
67 2
    public static function get(int $code): string
68
    {
69 2
        if (array_key_exists($code, self::ZIP_STATUS_CODES)) {
70 1
            return self::ZIP_STATUS_CODES[$code];
71
        }
72
73 1
        return sprintf('Unknown status %s', $code);
74
    }
75
}
76