FileUtil   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 10
lcom 0
cbo 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A mkdir() 0 6 4
A rmdir() 0 18 6
1
<?php
2
/**
3
 * KumbiaPHP web & app Framework
4
 *
5
 * LICENSE
6
 *
7
 * This source file is subject to the new BSD license that is bundled
8
 * with this package in the file LICENSE.
9
 *
10
 * @category   Kumbia
11
 * @package    Core
12
 *
13
 * @copyright  Copyright (c) 2005 - 2019 KumbiaPHP Team (http://www.kumbiaphp.com)
14
 * @license    https://github.com/KumbiaPHP/KumbiaPHP/blob/master/LICENSE   New BSD License
15
 */
16
17
/**
18
 * Utilidades para el manejo de ficheros y directorios
19
 * @category   Kumbia
20
 * @package    Core
21
 */
22
class FileUtil
23
{
24
    /**
25
     * Crea un path en caso de que no exista
26
     *
27
     * @param string $path ruta a crear
28
     * @todo Se debe optimizar
29
     * @return boolean
30
     */
31
    public static function mkdir($path)
32
    {
33
        if (file_exists($path) || @mkdir($path))
34
            return TRUE;
35
        return (self::mkdir(dirname($path)) && mkdir($path));
36
    }
37
38
    /**
39
     * Elimina un directorio.
40
     *
41
     * @param string $dir ruta de directorio a eliminar
42
     * @todo Se debe optimizar
43
     * @return boolean
44
     */
45
    public static function rmdir($dir)
46
    {
47
        // Obtengo los archivos en el directorio a eliminar
48
        if ($files = array_merge(glob("$dir/*"), glob("$dir/.*"))) {
49
            // Elimino cada subdirectorio o archivo
50
            foreach ($files as $file) {
51
                // Si no son los directorios "." o ".."
52
                if (!preg_match("/^.*\/?[\.]{1,2}$/", $file)) {
53
                    if (is_dir($file)) {
54
                        return self::rmdir($file);
55
                    } elseif ([email protected]($file)) {
56
                        return FALSE;
57
                    }
58
                }
59
            }
60
        }
61
        return @rmdir($dir);
62
    }
63
}
64