Rules::url()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 1
nc 2
nop 1
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of the Ocrend Framewok 3 package.
5
 *
6
 * (c) Ocrend Software <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Ocrend\Kernel\Router;
13
14
/**
15
 * Encargado de manejar las reglas definidas en Router::RULES 
16
 *
17
 * @author Brayan Narváez <[email protected]>
18
*/
19
final class Rules {
20
21
    /**
22
     * Sin ninguna regla
23
     *
24
     * @param mixed $ruta : Ruta a aplicar la regla
25
     *
26
     * @return mixed
27
    */
28
    final public function none($ruta) {
29
        return $ruta;
30
    }
31
32
    /**
33
     * Sólamente letras
34
     *
35
     * @param mixed $ruta : Ruta a aplicar la regla
36
     *
37
     * @return mixed
38
    */    
39
    final public function letters($ruta) {
40
        return preg_match("/^[a-zA-Z ]*$/", $ruta) ? $ruta : null;
41
    }
42
43
    /**
44
     * Letras y números
45
     *
46
     * @param mixed $ruta : Ruta a aplicar la regla
47
     *
48
     * @return mixed
49
    */   
50
    final public function alphanumeric($ruta) {
51
        return preg_match('/^[a-zA-Z0-9 ]*$/', $ruta) ? $ruta : null;
52
    }
53
54
    /**
55
     * Con forma para URL (letras,números y el caracter -)
56
     *
57
     * @param mixed $ruta : Ruta a aplicar la regla
58
     *
59
     * @return mixed
60
    */
61
    final public function url($ruta) {
62
        return preg_match('/^[a-zA-Z0-9- ]*$/', $ruta) ? $ruta : null;
63
    }
64
65
    /**
66
     * Sólamente números enteros
67
     *
68
     * @param mixed $ruta : Ruta a aplicar la regla
69
     *
70
     * @return int|null
71
    */
72
    final public function integer($ruta) {
73
        return is_numeric($ruta) ? (int) $ruta : null;
74
    }
75
76
    /**
77
     * Solamente números enteros positivos
78
     *
79
     * @param mixed $ruta : Ruta a aplicar la regla
80
     *
81
     * @return int|null
82
    */    
83
    final public function integer_positive($ruta) {
84
        return is_numeric($ruta) && $ruta >= 0 ? (int) $ruta : null;
85
    }
86
87
    /**
88
     * Solamente números con decimal
89
     *
90
     * @param mixed $ruta : Ruta a aplicar la regla
91
     *
92
     * @return float|null
93
    */
94
    final public function float($ruta) {
95
        return is_numeric($ruta) ? (float) $ruta : null;
96
    }
97
98
    /**
99
     * Solamente números con decimal y positivos
100
     *
101
     * @param mixed $ruta : Ruta a aplicar la regla
102
     *
103
     * @return float|null
104
    */
105
    final public function float_positive($ruta) {
106
        return is_numeric($ruta) && $ruta >= 0 ? (float) $ruta : null;
107
    }
108
}