Load   A
last analyzed

Complexity

Total Complexity 12

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 75
rs 10
c 0
b 0
f 0
wmc 12
lcom 0
cbo 2

4 Methods

Rating   Name   Duplication   Size   Complexity  
A lib() 0 9 2
A coreLib() 0 6 2
A model() 0 14 3
A models() 0 14 5
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
 *
12
 * @copyright  Copyright (c) 2005 - 2019 KumbiaPHP Team (http://www.kumbiaphp.com)
13
 * @license    https://github.com/KumbiaPHP/KumbiaPHP/blob/master/LICENSE   New BSD License
14
 */
15
16
/**
17
 * Cargador Selectivo.
18
 *
19
 * Clase para la carga de librerias tanto del core como de la app.
20
 * Carga de los modelos de una app.
21
 *
22
 * @category   Kumbia
23
 */
24
class Load
25
{
26
    /**
27
     * Carga libreria de APP, si no existe carga del CORE.
28
     *
29
     * @param string $lib libreria a cargar
30
     * @throw KumbiaException
31
     */
32
    public static function lib($lib)
33
    {
34
        $file = APP_PATH."libs/$lib.php";
35
        if (is_file($file)) {
36
            return include $file;
37
        }
38
39
        return self::coreLib($lib);
40
    }
41
42
    /**
43
     * Carga libreria del core.
44
     *
45
     * @param string $lib libreria a cargar
46
     * @throw KumbiaException
47
     */
48
    public static function coreLib($lib)
49
    {
50
        if (!include CORE_PATH."libs/$lib/$lib.php") {
51
            throw new KumbiaException("Librería: \"$lib\" no encontrada");
52
        }
53
    }
54
55
    /**
56
     * Obtiene la instancia de un modelo.
57
     *
58
     * @param string $model  modelo a instanciar en small_case
59
     * @param array  $params parámetros para instanciar el modelo
60
     *
61
     * @return obj model
62
     */
63
    public static function model($model, array $params = array())
64
    {
65
        //Nombre de la clase
66
        $Model = Util::camelcase(basename($model));
67
        //Si no esta cargada la clase
68
        if (!class_exists($Model, false)) {
69
            //Carga la clase
70
            if (!include APP_PATH."models/$model.php") {
71
                throw new KumbiaException($model, 'no_model');
72
            }
73
        }
74
75
        return new $Model($params);
76
    }
77
78
    /**
79
     * Carga modelos.
80
     *
81
     * @param string $model en small_case
82
     * @throw KumbiaException
83
     */
84
    public static function models($model)
85
    {
86
        $args = is_array($model) ? $model : func_get_args();
87
        foreach ($args as $model) {
88
            $Model = Util::camelcase(basename($model));
89
            //Si esta cargada continua con la siguiente clase
90
            if (class_exists($Model, false)) {
91
                continue;
92
            }
93
            if (!include APP_PATH."models/$model.php") {
94
                throw new KumbiaException($model, 'no_model');
95
            }
96
        }
97
    }
98
}
99