@@ -3,8 +3,8 @@ |
||
3 | 3 | spl_autoload_register('__ocrend_autoload'); |
4 | 4 | |
5 | 5 | function __ocrend_autoload(string $class) { |
6 | - $class = API_INTERFACE . str_replace('\\','/',$class); |
|
7 | - if(is_readable($class . '.php')) { |
|
6 | + $class = API_INTERFACE . str_replace('\\', '/', $class); |
|
7 | + if (is_readable($class . '.php')) { |
|
8 | 8 | require_once $class . '.php'; |
9 | 9 | } |
10 | 10 | } |
11 | 11 | \ No newline at end of file |
@@ -23,8 +23,8 @@ discard block |
||
23 | 23 | final class Router implements IRouter { |
24 | 24 | |
25 | 25 | /** |
26 | - * @var array CONSTANTE con las reglas permitidas |
|
27 | - */ |
|
26 | + * @var array CONSTANTE con las reglas permitidas |
|
27 | + */ |
|
28 | 28 | const RULES = [ |
29 | 29 | 'none', # Sin ninguna regla |
30 | 30 | 'letters', # Sólamente letras |
@@ -37,10 +37,10 @@ discard block |
||
37 | 37 | ]; |
38 | 38 | |
39 | 39 | /** |
40 | - * Colección de rutas existentes |
|
41 | - * |
|
42 | - * @var array |
|
43 | - */ |
|
40 | + * Colección de rutas existentes |
|
41 | + * |
|
42 | + * @var array |
|
43 | + */ |
|
44 | 44 | private $routerCollection = array( |
45 | 45 | '/controller' => 'home', # controlador por defecto |
46 | 46 | '/method' => null, # método por defecto |
@@ -48,10 +48,10 @@ discard block |
||
48 | 48 | ); |
49 | 49 | |
50 | 50 | /** |
51 | - * Colección de reglas para cada ruta existente |
|
52 | - * |
|
53 | - * @var array |
|
54 | - */ |
|
51 | + * Colección de reglas para cada ruta existente |
|
52 | + * |
|
53 | + * @var array |
|
54 | + */ |
|
55 | 55 | private $routerCollectionRules = array( |
56 | 56 | '/controller' => 'letters', |
57 | 57 | '/method' => 'none', |
@@ -59,18 +59,18 @@ discard block |
||
59 | 59 | ); |
60 | 60 | |
61 | 61 | /** |
62 | - * @var array |
|
63 | - */ |
|
62 | + * @var array |
|
63 | + */ |
|
64 | 64 | private $real_request = array(); |
65 | 65 | |
66 | 66 | /** |
67 | - * @var string |
|
68 | - */ |
|
67 | + * @var string |
|
68 | + */ |
|
69 | 69 | private $requestUri; |
70 | 70 | |
71 | 71 | /** |
72 | - * __construct() |
|
73 | - */ |
|
72 | + * __construct() |
|
73 | + */ |
|
74 | 74 | public function __construct() { |
75 | 75 | global $http; |
76 | 76 | |
@@ -82,13 +82,13 @@ discard block |
||
82 | 82 | } |
83 | 83 | |
84 | 84 | /** |
85 | - * Coloca una regla destinada a una ruta, siempre y cuando esta regla exista. |
|
86 | - * |
|
87 | - * @param string $index : Índice de la ruta |
|
88 | - * @param string $rule : Nombre de la regla |
|
89 | - * |
|
90 | - * @throws \RuntimeException si la regla no existe |
|
91 | - */ |
|
85 | + * Coloca una regla destinada a una ruta, siempre y cuando esta regla exista. |
|
86 | + * |
|
87 | + * @param string $index : Índice de la ruta |
|
88 | + * @param string $rule : Nombre de la regla |
|
89 | + * |
|
90 | + * @throws \RuntimeException si la regla no existe |
|
91 | + */ |
|
92 | 92 | final private function setCollectionRule(string $index, string $rule) { |
93 | 93 | # Verificar si la regla existe |
94 | 94 | if(!in_array($rule,self::RULES)) { |
@@ -99,8 +99,8 @@ discard block |
||
99 | 99 | } |
100 | 100 | |
101 | 101 | /** |
102 | - * Verifica las peticiones por defecto |
|
103 | - */ |
|
102 | + * Verifica las peticiones por defecto |
|
103 | + */ |
|
104 | 104 | final private function checkRequests() { |
105 | 105 | # Verificar si existe peticiones |
106 | 106 | if(null !== $this->requestUri) { |
@@ -114,13 +114,13 @@ discard block |
||
114 | 114 | } |
115 | 115 | |
116 | 116 | /** |
117 | - * Crea una nueva ruta. |
|
118 | - * |
|
119 | - * @param string $index : Índice de la ruta |
|
120 | - * @param string $rule : Nombre de la regla, por defecto es ninguna "none" |
|
121 | - * |
|
122 | - * @throws \RuntimeException si no puede definirse la ruta |
|
123 | - */ |
|
117 | + * Crea una nueva ruta. |
|
118 | + * |
|
119 | + * @param string $index : Índice de la ruta |
|
120 | + * @param string $rule : Nombre de la regla, por defecto es ninguna "none" |
|
121 | + * |
|
122 | + * @throws \RuntimeException si no puede definirse la ruta |
|
123 | + */ |
|
124 | 124 | final public function setRoute(string $index, string $rule = 'none') { |
125 | 125 | # Nombres de rutas no permitidos |
126 | 126 | if(in_array($index,['/controller','/method','/id'])) { |
@@ -140,13 +140,13 @@ discard block |
||
140 | 140 | } |
141 | 141 | |
142 | 142 | /** |
143 | - * Obtiene el valor de una ruta según la regla que ha sido definida y si ésta existe. |
|
144 | - * |
|
145 | - * @param string $index : Índice de la ruta |
|
146 | - * |
|
147 | - * @throws \RuntimeException si la ruta no existe o si no está implementada la regla |
|
148 | - * @return mixed : Valor de la ruta solicitada |
|
149 | - */ |
|
143 | + * Obtiene el valor de una ruta según la regla que ha sido definida y si ésta existe. |
|
144 | + * |
|
145 | + * @param string $index : Índice de la ruta |
|
146 | + * |
|
147 | + * @throws \RuntimeException si la ruta no existe o si no está implementada la regla |
|
148 | + * @return mixed : Valor de la ruta solicitada |
|
149 | + */ |
|
150 | 150 | final public function getRoute(string $index) { |
151 | 151 | # Verificar existencia de ruta |
152 | 152 | if(!array_key_exists($index,$this->routerCollection)) { |
@@ -189,34 +189,34 @@ discard block |
||
189 | 189 | } |
190 | 190 | |
191 | 191 | /** |
192 | - * Obtiene el nombre del controlador. |
|
193 | - * |
|
194 | - * @return string controlador. |
|
195 | - */ |
|
192 | + * Obtiene el nombre del controlador. |
|
193 | + * |
|
194 | + * @return string controlador. |
|
195 | + */ |
|
196 | 196 | final public function getController() { |
197 | 197 | return $this->routerCollection['/controller']; |
198 | 198 | } |
199 | 199 | |
200 | 200 | /** |
201 | - * Obtiene el método |
|
202 | - * |
|
203 | - * @return string con el método. |
|
204 | - * null si no está definido. |
|
205 | - */ |
|
201 | + * Obtiene el método |
|
202 | + * |
|
203 | + * @return string con el método. |
|
204 | + * null si no está definido. |
|
205 | + */ |
|
206 | 206 | final public function getMethod() { |
207 | 207 | return $this->routerCollection['/method']; |
208 | 208 | } |
209 | 209 | |
210 | 210 | /** |
211 | - * Obtiene el id |
|
212 | - * |
|
213 | - * @param bool $with_rules : true para obtener el id con reglas definidas para números mayores a 0 |
|
214 | - * false para obtener el id sin reglas definidas |
|
215 | - * |
|
216 | - * @return int|null con el id |
|
217 | - * int con el id si usa reglas. |
|
218 | - * null si no está definido. |
|
219 | - */ |
|
211 | + * Obtiene el id |
|
212 | + * |
|
213 | + * @param bool $with_rules : true para obtener el id con reglas definidas para números mayores a 0 |
|
214 | + * false para obtener el id sin reglas definidas |
|
215 | + * |
|
216 | + * @return int|null con el id |
|
217 | + * int con el id si usa reglas. |
|
218 | + * null si no está definido. |
|
219 | + */ |
|
220 | 220 | final public function getId(bool $with_rules = false) { |
221 | 221 | $id = $this->routerCollection['/id']; |
222 | 222 | if($with_rules) { |
@@ -226,11 +226,11 @@ discard block |
||
226 | 226 | return $id; |
227 | 227 | } |
228 | 228 | |
229 | - /** |
|
230 | - * Ejecuta el controlador solicitado por la URL. |
|
231 | - * Si este no existe, ejecutará errorController. |
|
232 | - * Si no se solicita ningún controlador, ejecutará homeController. |
|
233 | - */ |
|
229 | + /** |
|
230 | + * Ejecuta el controlador solicitado por la URL. |
|
231 | + * Si este no existe, ejecutará errorController. |
|
232 | + * Si no se solicita ningún controlador, ejecutará homeController. |
|
233 | + */ |
|
234 | 234 | final public function executeController() { |
235 | 235 | # Definir controlador |
236 | 236 | if(null != ($controller = $this->getController())) { |
@@ -91,7 +91,7 @@ discard block |
||
91 | 91 | */ |
92 | 92 | final private function setCollectionRule(string $index, string $rule) { |
93 | 93 | # Verificar si la regla existe |
94 | - if(!in_array($rule,self::RULES)) { |
|
94 | + if (!in_array($rule, self::RULES)) { |
|
95 | 95 | throw new \RuntimeException('La regla ' . $rule . ' no existe.'); |
96 | 96 | } |
97 | 97 | # Definir la regla para la ruta |
@@ -103,14 +103,14 @@ discard block |
||
103 | 103 | */ |
104 | 104 | final private function checkRequests() { |
105 | 105 | # Verificar si existe peticiones |
106 | - if(null !== $this->requestUri) { |
|
107 | - $this->real_request = explode('/',$this->requestUri); |
|
106 | + if (null !== $this->requestUri) { |
|
107 | + $this->real_request = explode('/', $this->requestUri); |
|
108 | 108 | $this->routerCollection['/controller'] = $this->real_request[0]; |
109 | 109 | } |
110 | 110 | |
111 | 111 | # Setear las siguientes rutas |
112 | - $this->routerCollection['/method'] = array_key_exists(1,$this->real_request) ? $this->real_request[1] : null; |
|
113 | - $this->routerCollection['/id'] = array_key_exists(2,$this->real_request) ? $this->real_request[2] : null; |
|
112 | + $this->routerCollection['/method'] = array_key_exists(1, $this->real_request) ? $this->real_request[1] : null; |
|
113 | + $this->routerCollection['/id'] = array_key_exists(2, $this->real_request) ? $this->real_request[2] : null; |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | /** |
@@ -123,7 +123,7 @@ discard block |
||
123 | 123 | */ |
124 | 124 | final public function setRoute(string $index, string $rule = 'none') { |
125 | 125 | # Nombres de rutas no permitidos |
126 | - if(in_array($index,['/controller','/method','/id'])) { |
|
126 | + if (in_array($index, ['/controller', '/method', '/id'])) { |
|
127 | 127 | throw new \RuntimeException('No puede definirse ' . $index . ' como índice en la ruta.'); |
128 | 128 | } |
129 | 129 | |
@@ -135,8 +135,8 @@ discard block |
||
135 | 135 | |
136 | 136 | # Definir la ruta y regla |
137 | 137 | $lastRoute = sizeof($this->routerCollection); |
138 | - $this->routerCollection[$index] = array_key_exists($lastRoute,$this->real_request) ? $this->real_request[$lastRoute] : null; |
|
139 | - $this->setCollectionRule($index,$rule); |
|
138 | + $this->routerCollection[$index] = array_key_exists($lastRoute, $this->real_request) ? $this->real_request[$lastRoute] : null; |
|
139 | + $this->setCollectionRule($index, $rule); |
|
140 | 140 | } |
141 | 141 | |
142 | 142 | /** |
@@ -149,7 +149,7 @@ discard block |
||
149 | 149 | */ |
150 | 150 | final public function getRoute(string $index) { |
151 | 151 | # Verificar existencia de ruta |
152 | - if(!array_key_exists($index,$this->routerCollection)) { |
|
152 | + if (!array_key_exists($index, $this->routerCollection)) { |
|
153 | 153 | throw new \RuntimeException('La ruta ' . $index . ' no está definida en el controlador.'); |
154 | 154 | } |
155 | 155 | |
@@ -157,7 +157,7 @@ discard block |
||
157 | 157 | $ruta = $this->routerCollection[$index]; |
158 | 158 | |
159 | 159 | # Retornar ruta con la regla definida aplicada |
160 | - switch($this->routerCollectionRules[$index]) { |
|
160 | + switch ($this->routerCollectionRules[$index]) { |
|
161 | 161 | case 'none': |
162 | 162 | return $ruta; |
163 | 163 | break; |
@@ -219,7 +219,7 @@ discard block |
||
219 | 219 | */ |
220 | 220 | final public function getId(bool $with_rules = false) { |
221 | 221 | $id = $this->routerCollection['/id']; |
222 | - if($with_rules) { |
|
222 | + if ($with_rules) { |
|
223 | 223 | return (null !== $id && is_numeric($id) && $id > 0) ? (int) $id : null; |
224 | 224 | } |
225 | 225 | |
@@ -233,10 +233,10 @@ discard block |
||
233 | 233 | */ |
234 | 234 | final public function executeController() { |
235 | 235 | # Definir controlador |
236 | - if(null != ($controller = $this->getController())) { |
|
236 | + if (null != ($controller = $this->getController())) { |
|
237 | 237 | $controller = $controller . 'Controller'; |
238 | 238 | |
239 | - if(!is_readable('app/controllers/' . $controller . '.php')) { |
|
239 | + if (!is_readable('app/controllers/' . $controller . '.php')) { |
|
240 | 240 | $controller = 'errorController'; |
241 | 241 | } |
242 | 242 |
@@ -18,24 +18,24 @@ discard block |
||
18 | 18 | * @author Brayan Narváez <[email protected]> |
19 | 19 | */ |
20 | 20 | |
21 | - class Database extends \PDO { |
|
21 | + class Database extends \PDO { |
|
22 | 22 | |
23 | - /** |
|
23 | + /** |
|
24 | 24 | * Contiene la instancia de conexión a la base de datos |
25 | 25 | * |
26 | 26 | * @var Database |
27 | - */ |
|
28 | - private static $inst; |
|
27 | + */ |
|
28 | + private static $inst; |
|
29 | 29 | |
30 | 30 | /** |
31 | - * Inicia la instancia de conexión, si esta ya ha sido declarada antes, no la duplica y ahorra memoria. |
|
32 | - * |
|
33 | - * @param string|null $name : Nombre de la base de datos a conectar |
|
34 | - * @param string|null $motor: Motor de la base de datos a conectar |
|
35 | - * @param bool $new_instance: true para iniciar una nueva instancia (al querer conectar a una DB distinta) |
|
36 | - * |
|
37 | - * @return Database : Instancia de conexión |
|
38 | - */ |
|
31 | + * Inicia la instancia de conexión, si esta ya ha sido declarada antes, no la duplica y ahorra memoria. |
|
32 | + * |
|
33 | + * @param string|null $name : Nombre de la base de datos a conectar |
|
34 | + * @param string|null $motor: Motor de la base de datos a conectar |
|
35 | + * @param bool $new_instance: true para iniciar una nueva instancia (al querer conectar a una DB distinta) |
|
36 | + * |
|
37 | + * @return Database : Instancia de conexión |
|
38 | + */ |
|
39 | 39 | final public static function Start($name = null, $motor = null, bool $new_instance = false) : Database { |
40 | 40 | global $config; |
41 | 41 | |
@@ -50,16 +50,16 @@ discard block |
||
50 | 50 | } |
51 | 51 | |
52 | 52 | /** |
53 | - * Inicia la conexión con la base de datos seleccionada |
|
54 | - * |
|
55 | - * @param string|null $name : Nombre de la base de datos a conectar |
|
56 | - * @param string|null $motor: Motor de la base de datos a conectar |
|
57 | - * @param bool $new_instance: true para iniciar una nueva instancia (al querer conectar a una DB distinta) |
|
58 | - * |
|
59 | - * @throws RuntimeException si el motor no existe |
|
60 | - * @throws RuntimeException si existe algún problema de conexión con la base de datos |
|
61 | - * @return Database : Instancia de conexión |
|
62 | - */ |
|
53 | + * Inicia la conexión con la base de datos seleccionada |
|
54 | + * |
|
55 | + * @param string|null $name : Nombre de la base de datos a conectar |
|
56 | + * @param string|null $motor: Motor de la base de datos a conectar |
|
57 | + * @param bool $new_instance: true para iniciar una nueva instancia (al querer conectar a una DB distinta) |
|
58 | + * |
|
59 | + * @throws RuntimeException si el motor no existe |
|
60 | + * @throws RuntimeException si existe algún problema de conexión con la base de datos |
|
61 | + * @return Database : Instancia de conexión |
|
62 | + */ |
|
63 | 63 | final public function __construct(string $name, string $motor) { |
64 | 64 | global $config; |
65 | 65 | |
@@ -127,34 +127,34 @@ discard block |
||
127 | 127 | } |
128 | 128 | |
129 | 129 | /** |
130 | - * Devuelve un arreglo asociativo de todos los resultados arrojados por una query |
|
131 | - * |
|
132 | - * @param object PDOStatement $query, valor devuelto de la query |
|
133 | - * |
|
134 | - * @return arreglo asociativo |
|
135 | - */ |
|
130 | + * Devuelve un arreglo asociativo de todos los resultados arrojados por una query |
|
131 | + * |
|
132 | + * @param object PDOStatement $query, valor devuelto de la query |
|
133 | + * |
|
134 | + * @return arreglo asociativo |
|
135 | + */ |
|
136 | 136 | final public function fetch_array(\PDOStatement $query) : array { |
137 | 137 | return $query->fetchAll(\PDO::FETCH_ASSOC); |
138 | 138 | } |
139 | 139 | |
140 | - /** |
|
141 | - * Consigue el numero de filas encontradas después de un SELECT |
|
142 | - * |
|
143 | - * @param object PDOStatement $query, valor devuelto de la query |
|
144 | - * |
|
145 | - * @return numero de filas encontradas |
|
146 | - */ |
|
140 | + /** |
|
141 | + * Consigue el numero de filas encontradas después de un SELECT |
|
142 | + * |
|
143 | + * @param object PDOStatement $query, valor devuelto de la query |
|
144 | + * |
|
145 | + * @return numero de filas encontradas |
|
146 | + */ |
|
147 | 147 | final public function rows(\PDOStatement $query) : int { |
148 | 148 | return $query->rowCount(); |
149 | 149 | } |
150 | 150 | |
151 | 151 | /** |
152 | - * Sana un valor para posteriormente ser introducido en una query |
|
153 | - * |
|
154 | - * @param null/string/int/float a sanar |
|
155 | - * |
|
156 | - * @return int/float/string sanados según sea el tipo de dato pasado por parámetro |
|
157 | - */ |
|
152 | + * Sana un valor para posteriormente ser introducido en una query |
|
153 | + * |
|
154 | + * @param null/string/int/float a sanar |
|
155 | + * |
|
156 | + * @return int/float/string sanados según sea el tipo de dato pasado por parámetro |
|
157 | + */ |
|
158 | 158 | final public function scape($e) { |
159 | 159 | if(null === $e) { |
160 | 160 | return ''; |
@@ -171,28 +171,28 @@ discard block |
||
171 | 171 | } |
172 | 172 | |
173 | 173 | /** |
174 | - * Borra una serie de elementos de forma segura de una tabla en la base de datos |
|
175 | - * |
|
176 | - * @param string $table: Tabla a la cual se le quiere remover un elemento |
|
177 | - * @param string $where: Condición de borrado que define quien/quienes son dichos elementos |
|
178 | - * @param string $limit: Por defecto se limita a borrar un solo elemento que cumpla el $where |
|
179 | - * |
|
180 | - * @return object PDOStatement |
|
181 | - */ |
|
174 | + * Borra una serie de elementos de forma segura de una tabla en la base de datos |
|
175 | + * |
|
176 | + * @param string $table: Tabla a la cual se le quiere remover un elemento |
|
177 | + * @param string $where: Condición de borrado que define quien/quienes son dichos elementos |
|
178 | + * @param string $limit: Por defecto se limita a borrar un solo elemento que cumpla el $where |
|
179 | + * |
|
180 | + * @return object PDOStatement |
|
181 | + */ |
|
182 | 182 | final public function delete(string $table, string $where, string $limit = 'LIMIT 1') : \PDOStatement { |
183 | 183 | return $this->query("DELETE FROM $table WHERE $where $limit;"); |
184 | 184 | } |
185 | 185 | |
186 | 186 | /** |
187 | - * Inserta una serie de elementos a una tabla en la base de datos |
|
188 | - * |
|
189 | - * @param string $table: Tabla a la cual se le va a insertar elementos |
|
190 | - * @param array $e: Arreglo asociativo de elementos, con la estrctura 'campo_en_la_tabla' => 'valor_a_insertar_en_ese_campo', |
|
191 | - * todos los elementos del arreglo $e, serán sanados por el método sin necesidad de hacerlo manualmente al crear el arreglo |
|
192 | - * |
|
193 | - * @throws RuntimeException si el arreglo está vacío |
|
194 | - * @return object PDOStatement |
|
195 | - */ |
|
187 | + * Inserta una serie de elementos a una tabla en la base de datos |
|
188 | + * |
|
189 | + * @param string $table: Tabla a la cual se le va a insertar elementos |
|
190 | + * @param array $e: Arreglo asociativo de elementos, con la estrctura 'campo_en_la_tabla' => 'valor_a_insertar_en_ese_campo', |
|
191 | + * todos los elementos del arreglo $e, serán sanados por el método sin necesidad de hacerlo manualmente al crear el arreglo |
|
192 | + * |
|
193 | + * @throws RuntimeException si el arreglo está vacío |
|
194 | + * @return object PDOStatement |
|
195 | + */ |
|
196 | 196 | final public function insert(string $table, array $e) : \PDOStatement { |
197 | 197 | if (sizeof($e) == 0) { |
198 | 198 | throw new \RuntimeException('El arreglo pasado por $this->db->insert(\''.$table.'\',...) está vacío.'); |
@@ -212,17 +212,17 @@ discard block |
||
212 | 212 | } |
213 | 213 | |
214 | 214 | /** |
215 | - * Actualiza elementos de una tabla en la base de datos según una condición |
|
216 | - * |
|
217 | - * @param string $table: Tabla a actualizar |
|
218 | - * @param array $e: Arreglo asociativo de elementos, con la estrctura 'campo_en_la_tabla' => 'valor_a_insertar_en_ese_campo', |
|
219 | - * todos los elementos del arreglo $e, serán sanados por el método sin necesidad de hacerlo manualmente al crear el arreglo |
|
220 | - * @param string $where: Condición que indica quienes serán modificados |
|
221 | - * @param string $limite: Límite de elementos modificados, por defecto los modifica a todos |
|
222 | - * |
|
223 | - * @throws RuntimeException si el arreglo está vacío |
|
224 | - * @return object PDOStatement |
|
225 | - */ |
|
215 | + * Actualiza elementos de una tabla en la base de datos según una condición |
|
216 | + * |
|
217 | + * @param string $table: Tabla a actualizar |
|
218 | + * @param array $e: Arreglo asociativo de elementos, con la estrctura 'campo_en_la_tabla' => 'valor_a_insertar_en_ese_campo', |
|
219 | + * todos los elementos del arreglo $e, serán sanados por el método sin necesidad de hacerlo manualmente al crear el arreglo |
|
220 | + * @param string $where: Condición que indica quienes serán modificados |
|
221 | + * @param string $limite: Límite de elementos modificados, por defecto los modifica a todos |
|
222 | + * |
|
223 | + * @throws RuntimeException si el arreglo está vacío |
|
224 | + * @return object PDOStatement |
|
225 | + */ |
|
226 | 226 | final public function update(string $table, array $e, string $where, string $limit = '') : \PDOStatement { |
227 | 227 | if (sizeof($e) == 0) { |
228 | 228 | throw new \RuntimeException('El arreglo pasado por $this->db->update(\''.$table.'\'...) está vacío.'); |
@@ -239,24 +239,24 @@ discard block |
||
239 | 239 | } |
240 | 240 | |
241 | 241 | /** |
242 | - * Selecciona y lista en un arreglo asociativo/numérico los resultados de una búsqueda en la base de datos |
|
243 | - * |
|
244 | - * @param string $e: Elementos a seleccionar separados por coma |
|
245 | - * @param string $tbale: Tabla de la cual se quiere extraer los elementos $e |
|
246 | - * @param string $where: Condición que indica quienes son los que se extraen, si no se coloca extrae todos |
|
247 | - * @param string $limite: Límite de elemntos a traer, por defecto trae TODOS los que cumplan $where |
|
248 | - * |
|
249 | - * @return false si no encuentra ningún resultado, array asociativo/numérico si consigue al menos uno |
|
250 | - */ |
|
242 | + * Selecciona y lista en un arreglo asociativo/numérico los resultados de una búsqueda en la base de datos |
|
243 | + * |
|
244 | + * @param string $e: Elementos a seleccionar separados por coma |
|
245 | + * @param string $tbale: Tabla de la cual se quiere extraer los elementos $e |
|
246 | + * @param string $where: Condición que indica quienes son los que se extraen, si no se coloca extrae todos |
|
247 | + * @param string $limite: Límite de elemntos a traer, por defecto trae TODOS los que cumplan $where |
|
248 | + * |
|
249 | + * @return false si no encuentra ningún resultado, array asociativo/numérico si consigue al menos uno |
|
250 | + */ |
|
251 | 251 | final public function select(string $e, string $table, string $where = '1 = 1', string $limit = "") { |
252 | 252 | return $this->query_select("SELECT $e FROM $table WHERE $where $limit;"); |
253 | 253 | } |
254 | 254 | |
255 | - /** |
|
256 | - * Realiza una query, ideal para trabajar con SELECTS, JOINS, etc |
|
257 | - * |
|
258 | - * @return false si no encuentra ningún resultado, array asociativo/numérico si consigue al menos uno |
|
259 | - */ |
|
255 | + /** |
|
256 | + * Realiza una query, ideal para trabajar con SELECTS, JOINS, etc |
|
257 | + * |
|
258 | + * @return false si no encuentra ningún resultado, array asociativo/numérico si consigue al menos uno |
|
259 | + */ |
|
260 | 260 | final public function query_select(string $query) { |
261 | 261 | $sql = $this->query($query); |
262 | 262 | $result = $sql->fetchAll(); |
@@ -270,13 +270,13 @@ discard block |
||
270 | 270 | } |
271 | 271 | |
272 | 272 | /** |
273 | - * Alert para evitar clonaciones |
|
274 | - * |
|
275 | - * @throws RuntimeException si se intenta clonar la conexión |
|
276 | - * @return void |
|
277 | - */ |
|
273 | + * Alert para evitar clonaciones |
|
274 | + * |
|
275 | + * @throws RuntimeException si se intenta clonar la conexión |
|
276 | + * @return void |
|
277 | + */ |
|
278 | 278 | final public function __clone() { |
279 | 279 | throw new \RuntimeException('Estás intentando clonar la Conexión'); |
280 | 280 | } |
281 | 281 | |
282 | - } |
|
283 | 282 | \ No newline at end of file |
283 | + } |
|
284 | 284 | \ No newline at end of file |
@@ -39,7 +39,7 @@ discard block |
||
39 | 39 | final public static function Start($name = null, $motor = null, bool $new_instance = false) : Database { |
40 | 40 | global $config; |
41 | 41 | |
42 | - if(!self::$inst instanceof self or $new_instance) { |
|
42 | + if (!self::$inst instanceof self or $new_instance) { |
|
43 | 43 | self::$inst = new self( |
44 | 44 | null == $name ? $config['database']['name'] : $name, |
45 | 45 | null == $motor ? $config['database']['motor'] : $motor |
@@ -66,41 +66,41 @@ discard block |
||
66 | 66 | try { |
67 | 67 | switch ($motor) { |
68 | 68 | case 'sqlite': |
69 | - parent::__construct('sqlite:'.$name); |
|
69 | + parent::__construct('sqlite:' . $name); |
|
70 | 70 | break; |
71 | 71 | case 'cubrid': |
72 | - parent::__construct('cubrid:host='.$config['database']['host'].';dbname='.$name.';port='.$config['database']['port'],$config['database']['user'],$config['database']['pass'],array( |
|
72 | + parent::__construct('cubrid:host=' . $config['database']['host'] . ';dbname=' . $name . ';port=' . $config['database']['port'], $config['database']['user'], $config['database']['pass'], array( |
|
73 | 73 | \PDO::ATTR_EMULATE_PREPARES => false, |
74 | 74 | \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION)); |
75 | 75 | break; |
76 | 76 | case 'firebird': |
77 | - parent::__construct('firebird:dbname='.$config['database']['host'].':'.$name,$config['database']['user'],$config['database']['pass'],array( |
|
77 | + parent::__construct('firebird:dbname=' . $config['database']['host'] . ':' . $name, $config['database']['user'], $config['database']['pass'], array( |
|
78 | 78 | \PDO::ATTR_EMULATE_PREPARES => false, |
79 | 79 | \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION)); |
80 | 80 | break; |
81 | 81 | case 'odbc'; |
82 | - parent::__construct('odbc:'.$name,$config['database']['user'],$config['database']['pass']); |
|
82 | + parent::__construct('odbc:' . $name, $config['database']['user'], $config['database']['pass']); |
|
83 | 83 | break; |
84 | 84 | case 'oracle': |
85 | 85 | parent::__construct('oci:dbname=(DESCRIPTION = |
86 | 86 | (ADDRESS_LIST = |
87 | - (ADDRESS = (PROTOCOL = '.$config['database']['protocol'].')(HOST = '.$motor.')(PORT = '.$config['database']['port'].')) |
|
87 | + (ADDRESS = (PROTOCOL = '.$config['database']['protocol'] . ')(HOST = ' . $motor . ')(PORT = ' . $config['database']['port'] . ')) |
|
88 | 88 | ) |
89 | 89 | (CONNECT_DATA = |
90 | - (SERVICE_NAME = '.$name.') |
|
90 | + (SERVICE_NAME = '.$name . ') |
|
91 | 91 | ) |
92 | - );charset=utf8',$config['database']['user'],$config['database']['pass'], |
|
92 | + );charset=utf8',$config['database']['user'], $config['database']['pass'], |
|
93 | 93 | array(\PDO::ATTR_EMULATE_PREPARES => false, |
94 | 94 | \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, |
95 | 95 | \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC)); |
96 | 96 | break; |
97 | 97 | case 'postgresql': |
98 | - parent::__construct('pgsql:host='.$config['database']['host'].';dbname='.$name.';charset=utf8',$config['database']['user'],$config['database']['pass'],array( |
|
98 | + parent::__construct('pgsql:host=' . $config['database']['host'] . ';dbname=' . $name . ';charset=utf8', $config['database']['user'], $config['database']['pass'], array( |
|
99 | 99 | \PDO::ATTR_EMULATE_PREPARES => false, |
100 | 100 | \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION)); |
101 | 101 | break; |
102 | 102 | case 'mysql': |
103 | - parent::__construct('mysql:host='.$config['database']['host'].';dbname='.$name,$config['database']['user'],$config['database']['pass'],array( |
|
103 | + parent::__construct('mysql:host=' . $config['database']['host'] . ';dbname=' . $name, $config['database']['user'], $config['database']['pass'], array( |
|
104 | 104 | \PDO::ATTR_EMULATE_PREPARES => false, |
105 | 105 | \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, |
106 | 106 | \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); |
@@ -108,7 +108,7 @@ discard block |
||
108 | 108 | case 'mssql': |
109 | 109 | # Añadido por marc2684 |
110 | 110 | # DOC: https://github.com/prinick96/Ocrend-Framework/issues/7 |
111 | - parent::__construct('sqlsrv:Server='.$config['database']['host'].';Database='.$name.';ConnectionPooling=0', |
|
111 | + parent::__construct('sqlsrv:Server=' . $config['database']['host'] . ';Database=' . $name . ';ConnectionPooling=0', |
|
112 | 112 | $config['database']['user'], |
113 | 113 | $config['database']['pass'], |
114 | 114 | array(\PDO::ATTR_EMULATE_PREPARES => false, |
@@ -118,10 +118,10 @@ discard block |
||
118 | 118 | )); |
119 | 119 | break; |
120 | 120 | default: |
121 | - throw new \RuntimeException('Motor '. $motor .' de conexión no identificado.'); |
|
121 | + throw new \RuntimeException('Motor ' . $motor . ' de conexión no identificado.'); |
|
122 | 122 | break; |
123 | 123 | } |
124 | - } catch(\PDOException $e) { |
|
124 | + } catch (\PDOException $e) { |
|
125 | 125 | throw new \RuntimeException('Problema al conectar con la base de datos: ' . $e->getMessage()); |
126 | 126 | } |
127 | 127 | } |
@@ -156,18 +156,18 @@ discard block |
||
156 | 156 | * @return int/float/string sanados según sea el tipo de dato pasado por parámetro |
157 | 157 | */ |
158 | 158 | final public function scape($e) { |
159 | - if(null === $e) { |
|
159 | + if (null === $e) { |
|
160 | 160 | return ''; |
161 | 161 | } |
162 | 162 | |
163 | - if(is_numeric($e) and $e <= 2147483647) { |
|
164 | - if(explode('.',$e)[0] != $e) { |
|
163 | + if (is_numeric($e) and $e <= 2147483647) { |
|
164 | + if (explode('.', $e)[0] != $e) { |
|
165 | 165 | return (float) $e; |
166 | 166 | } |
167 | 167 | return (int) $e; |
168 | 168 | } |
169 | 169 | |
170 | - return (string) trim(str_replace(['\\',"\x00",'\n','\r',"'",'"',"\x1a"],['\\\\','\\0','\\n','\\r',"\'",'\"','\\Z'],$e)); |
|
170 | + return (string) trim(str_replace(['\\', "\x00", '\n', '\r', "'", '"', "\x1a"], ['\\\\', '\\0', '\\n', '\\r', "\'", '\"', '\\Z'], $e)); |
|
171 | 171 | } |
172 | 172 | |
173 | 173 | /** |
@@ -195,7 +195,7 @@ discard block |
||
195 | 195 | */ |
196 | 196 | final public function insert(string $table, array $e) : \PDOStatement { |
197 | 197 | if (sizeof($e) == 0) { |
198 | - throw new \RuntimeException('El arreglo pasado por $this->db->insert(\''.$table.'\',...) está vacío.'); |
|
198 | + throw new \RuntimeException('El arreglo pasado por $this->db->insert(\'' . $table . '\',...) está vacío.'); |
|
199 | 199 | } |
200 | 200 | |
201 | 201 | $query = "INSERT INTO $table ("; |
@@ -225,7 +225,7 @@ discard block |
||
225 | 225 | */ |
226 | 226 | final public function update(string $table, array $e, string $where, string $limit = '') : \PDOStatement { |
227 | 227 | if (sizeof($e) == 0) { |
228 | - throw new \RuntimeException('El arreglo pasado por $this->db->update(\''.$table.'\'...) está vacío.'); |
|
228 | + throw new \RuntimeException('El arreglo pasado por $this->db->update(\'' . $table . '\'...) está vacío.'); |
|
229 | 229 | } |
230 | 230 | |
231 | 231 | $query = "UPDATE $table SET "; |
@@ -262,7 +262,7 @@ discard block |
||
262 | 262 | $result = $sql->fetchAll(); |
263 | 263 | $sql->closeCursor(); |
264 | 264 | |
265 | - if(sizeof($result) > 0) { |
|
265 | + if (sizeof($result) > 0) { |
|
266 | 266 | return $result; |
267 | 267 | } |
268 | 268 |
@@ -23,17 +23,17 @@ |
||
23 | 23 | final class Config { |
24 | 24 | |
25 | 25 | /** |
26 | - * Ruta con parámetros de configuración |
|
27 | - * |
|
28 | - * @var string |
|
29 | - */ |
|
26 | + * Ruta con parámetros de configuración |
|
27 | + * |
|
28 | + * @var string |
|
29 | + */ |
|
30 | 30 | const FILE_CONFIG_ROUTE = API_INTERFACE . 'Ocrend/Kernel/Config/Ocrend.ini.yml'; |
31 | 31 | |
32 | 32 | /** |
33 | - * Lee la configuración del archivo self::FILE_CONFIG_ROUTE |
|
34 | - * |
|
35 | - * @return array : Arreglo con la configuración en el archivo .yml |
|
36 | - */ |
|
33 | + * Lee la configuración del archivo self::FILE_CONFIG_ROUTE |
|
34 | + * |
|
35 | + * @return array : Arreglo con la configuración en el archivo .yml |
|
36 | + */ |
|
37 | 37 | final public function readConfig() : array { |
38 | 38 | return Yaml::parse(file_get_contents(self::FILE_CONFIG_ROUTE)); |
39 | 39 | } |
@@ -27,7 +27,7 @@ discard block |
||
27 | 27 | //--------------------------------------------------------------------------------------------- |
28 | 28 | |
29 | 29 | /** |
30 | - * Manejador de excepciones y errores |
|
30 | + * Manejador de excepciones y errores |
|
31 | 31 | */ |
32 | 32 | ErrorHandler::register(); |
33 | 33 | ExceptionHandler::register(); |
@@ -35,7 +35,7 @@ discard block |
||
35 | 35 | //--------------------------------------------------------------------------------------------- |
36 | 36 | |
37 | 37 | /** |
38 | - * Versión mínima de PHP |
|
38 | + * Versión mínima de PHP |
|
39 | 39 | */ |
40 | 40 | if (version_compare(phpversion(), '7.0.0', '<')) { |
41 | 41 | throw new \RuntimeException('La versión actual de PHP es ' . phpversion() . ' y como mínimo se require la versión 7.0.0'); |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | //--------------------------------------------------------------------------------------------- |
45 | 45 | |
46 | 46 | /** |
47 | - * Lectura y escritura de caché para Twig |
|
47 | + * Lectura y escritura de caché para Twig |
|
48 | 48 | */ |
49 | 49 | if(!is_writable(API_INTERFACE . 'app/templates/.cache/') || !is_readable(API_INTERFACE . 'app/templates/.cache/')) { |
50 | 50 | throw new \RuntimeException('Debe conceder permisos de escritura y lectura a la ruta ' . API_INTERFACE . 'app/templates/.cache/ ó crearla si no existe.'); |
@@ -53,15 +53,15 @@ discard block |
||
53 | 53 | //--------------------------------------------------------------------------------------------- |
54 | 54 | |
55 | 55 | /** |
56 | - * Obtiene la configuración inicial del sistema, conexión a la base de datos, |
|
57 | - * constantes de phpmailer, credenciales de la api de paypal, etc. |
|
56 | + * Obtiene la configuración inicial del sistema, conexión a la base de datos, |
|
57 | + * constantes de phpmailer, credenciales de la api de paypal, etc. |
|
58 | 58 | */ |
59 | 59 | $config = (new Config)->readConfig(); |
60 | 60 | |
61 | 61 | //--------------------------------------------------------------------------------------------- |
62 | 62 | |
63 | 63 | /** |
64 | - * Capa orientada a objetos para el uso de sesiones más seguras en PHP |
|
64 | + * Capa orientada a objetos para el uso de sesiones más seguras en PHP |
|
65 | 65 | */ |
66 | 66 | $session = new Session(new NativeSessionStorage( |
67 | 67 | array( |
@@ -73,14 +73,14 @@ discard block |
||
73 | 73 | //--------------------------------------------------------------------------------------------- |
74 | 74 | |
75 | 75 | /** |
76 | - * Capa orientada a objetos de HTTPFoundation |
|
76 | + * Capa orientada a objetos de HTTPFoundation |
|
77 | 77 | */ |
78 | 78 | $http = Request::createFromGlobals(); |
79 | 79 | |
80 | 80 | //--------------------------------------------------------------------------------------------- |
81 | 81 | |
82 | 82 | /** |
83 | - * Estatus del DEBUG |
|
83 | + * Estatus del DEBUG |
|
84 | 84 | */ |
85 | 85 | if($config['framework']['debug']) { |
86 | 86 | Debug::enable(); |
@@ -89,6 +89,6 @@ discard block |
||
89 | 89 | //--------------------------------------------------------------------------------------------- |
90 | 90 | |
91 | 91 | /** |
92 | - * Define el timezone actual |
|
92 | + * Define el timezone actual |
|
93 | 93 | */ |
94 | 94 | date_default_timezone_set($config['site']['timezone']); |
95 | 95 | \ No newline at end of file |
@@ -46,7 +46,7 @@ discard block |
||
46 | 46 | /** |
47 | 47 | * Lectura y escritura de caché para Twig |
48 | 48 | */ |
49 | -if(!is_writable(API_INTERFACE . 'app/templates/.cache/') || !is_readable(API_INTERFACE . 'app/templates/.cache/')) { |
|
49 | +if (!is_writable(API_INTERFACE . 'app/templates/.cache/') || !is_readable(API_INTERFACE . 'app/templates/.cache/')) { |
|
50 | 50 | throw new \RuntimeException('Debe conceder permisos de escritura y lectura a la ruta ' . API_INTERFACE . 'app/templates/.cache/ ó crearla si no existe.'); |
51 | 51 | } |
52 | 52 | |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | /** |
83 | 83 | * Estatus del DEBUG |
84 | 84 | */ |
85 | -if($config['framework']['debug']) { |
|
85 | +if ($config['framework']['debug']) { |
|
86 | 86 | Debug::enable(); |
87 | 87 | } |
88 | 88 |
@@ -25,65 +25,65 @@ discard block |
||
25 | 25 | abstract class Controllers { |
26 | 26 | |
27 | 27 | /** |
28 | - * Obtiene el objeto del template |
|
29 | - * |
|
30 | - * @var Twig_Environment |
|
31 | - */ |
|
28 | + * Obtiene el objeto del template |
|
29 | + * |
|
30 | + * @var Twig_Environment |
|
31 | + */ |
|
32 | 32 | protected $template; |
33 | 33 | |
34 | 34 | /** |
35 | - * Verifica si está definida la ruta /id como un integer >= 1 |
|
36 | - * |
|
37 | - * @var bool |
|
38 | - */ |
|
35 | + * Verifica si está definida la ruta /id como un integer >= 1 |
|
36 | + * |
|
37 | + * @var bool |
|
38 | + */ |
|
39 | 39 | protected $isset_id = false; |
40 | 40 | |
41 | 41 | /** |
42 | - * Tiene el valor de la ruta /método |
|
43 | - * |
|
44 | - * @var string|null |
|
45 | - */ |
|
42 | + * Tiene el valor de la ruta /método |
|
43 | + * |
|
44 | + * @var string|null |
|
45 | + */ |
|
46 | 46 | protected $method; |
47 | 47 | |
48 | 48 | /** |
49 | - * Contiene una instancia del helper para funciones |
|
50 | - * |
|
51 | - * @var Ocrend\Kernel\Helpers\Functions |
|
52 | - */ |
|
49 | + * Contiene una instancia del helper para funciones |
|
50 | + * |
|
51 | + * @var Ocrend\Kernel\Helpers\Functions |
|
52 | + */ |
|
53 | 53 | protected $functions; |
54 | 54 | |
55 | 55 | /** |
56 | - * Arreglo con la información del usuario conectado actualmente. |
|
57 | - * |
|
58 | - * @var array |
|
59 | - */ |
|
56 | + * Arreglo con la información del usuario conectado actualmente. |
|
57 | + * |
|
58 | + * @var array |
|
59 | + */ |
|
60 | 60 | protected $user = array(); |
61 | 61 | |
62 | 62 | /** |
63 | - * Contiene información sobre el estado del usuario, si está o no conectado. |
|
64 | - * |
|
65 | - * @var bool |
|
66 | - */ |
|
63 | + * Contiene información sobre el estado del usuario, si está o no conectado. |
|
64 | + * |
|
65 | + * @var bool |
|
66 | + */ |
|
67 | 67 | private $is_logged = false; |
68 | 68 | |
69 | 69 | /** |
70 | - * Parámetros de configuración para el controlador con la forma: |
|
71 | - * 'parmáetro' => (bool) valor |
|
72 | - * |
|
73 | - * @var array |
|
74 | - */ |
|
70 | + * Parámetros de configuración para el controlador con la forma: |
|
71 | + * 'parmáetro' => (bool) valor |
|
72 | + * |
|
73 | + * @var array |
|
74 | + */ |
|
75 | 75 | private $controllerConfig; |
76 | 76 | |
77 | 77 | /** |
78 | - * Configuración inicial de cualquier controlador |
|
79 | - * |
|
80 | - * @param IRouter $router: Instancia de un Router |
|
81 | - * @param array|null $configController: Arreglo de configuración con la forma |
|
82 | - * 'twig_cache_reload' => bool, # Configura el autoreload del caché de twig |
|
83 | - * 'users_logged' => bool, # Configura el controlador para solo ser visto por usuarios logeados |
|
84 | - * 'users_not_logged' => bool, # Configura el controlador para solo ser visto por !(usuarios logeados) |
|
85 | - * |
|
86 | - */ |
|
78 | + * Configuración inicial de cualquier controlador |
|
79 | + * |
|
80 | + * @param IRouter $router: Instancia de un Router |
|
81 | + * @param array|null $configController: Arreglo de configuración con la forma |
|
82 | + * 'twig_cache_reload' => bool, # Configura el autoreload del caché de twig |
|
83 | + * 'users_logged' => bool, # Configura el controlador para solo ser visto por usuarios logeados |
|
84 | + * 'users_not_logged' => bool, # Configura el controlador para solo ser visto por !(usuarios logeados) |
|
85 | + * |
|
86 | + */ |
|
87 | 87 | protected function __construct(IRouter $router, $configController = null) { |
88 | 88 | global $config, $http, $session; |
89 | 89 | |
@@ -131,13 +131,13 @@ discard block |
||
131 | 131 | } |
132 | 132 | |
133 | 133 | /** |
134 | - * Establece los parámetros de configuración de un controlador |
|
135 | - * |
|
136 | - * @param IRouter $router: Instancia de un Router |
|
137 | - * @param array|null $config: Arreglo de configuración |
|
138 | - * |
|
139 | - * @return void |
|
140 | - */ |
|
134 | + * Establece los parámetros de configuración de un controlador |
|
135 | + * |
|
136 | + * @param IRouter $router: Instancia de un Router |
|
137 | + * @param array|null $config: Arreglo de configuración |
|
138 | + * |
|
139 | + * @return void |
|
140 | + */ |
|
141 | 141 | private function setControllerConfig($config) { |
142 | 142 | # Configuración por defecto |
143 | 143 | $this->controllerConfig['twig_cache_reload'] = true; |
@@ -162,10 +162,10 @@ discard block |
||
162 | 162 | } |
163 | 163 | |
164 | 164 | /** |
165 | - * Acción que regula quién entra o no al controlador según la configuración |
|
166 | - * |
|
167 | - * @return void |
|
168 | - */ |
|
165 | + * Acción que regula quién entra o no al controlador según la configuración |
|
166 | + * |
|
167 | + * @return void |
|
168 | + */ |
|
169 | 169 | private function knowVisitorPermissions() { |
170 | 170 | # Sólamente usuarios logeados |
171 | 171 | if($this->controllerConfig['users_logged'] && !$this->is_logged) { |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | $this->template->addGlobal('is_logged', $this->is_logged); |
115 | 115 | |
116 | 116 | # Datos del usuario actual |
117 | - if($this->is_logged) { |
|
117 | + if ($this->is_logged) { |
|
118 | 118 | $this->user = (new Model\Users)->getOwnerUser(); |
119 | 119 | $this->template->addGlobal('owner_user', $this->user); |
120 | 120 | } |
@@ -145,17 +145,17 @@ discard block |
||
145 | 145 | $this->controllerConfig['users_not_logged'] = false; |
146 | 146 | |
147 | 147 | # Establecer las configuraciones pasadas |
148 | - if(null != $config) { |
|
148 | + if (null != $config) { |
|
149 | 149 | # Configura el autoreload del caché de twig |
150 | - if(array_key_exists('twig_cache_reload',$config)) { |
|
150 | + if (array_key_exists('twig_cache_reload', $config)) { |
|
151 | 151 | $this->controllerConfig['twig_cache_reload'] = (bool) $config['twig_cache_reload']; |
152 | 152 | } |
153 | 153 | # Configura el controlador para solo ser visto por usuarios logeados |
154 | - if(array_key_exists('users_logged',$config)) { |
|
154 | + if (array_key_exists('users_logged', $config)) { |
|
155 | 155 | $this->controllerConfig['users_logged'] = (bool) $config['users_logged']; |
156 | 156 | } |
157 | 157 | # Configura el controlador para solo ser visto por usuario no logeados |
158 | - if(array_key_exists('users_not_logged',$config)) { |
|
158 | + if (array_key_exists('users_not_logged', $config)) { |
|
159 | 159 | $this->controllerConfig['users_not_logged'] = (bool) $config['users_not_logged']; |
160 | 160 | } |
161 | 161 | } |
@@ -168,12 +168,12 @@ discard block |
||
168 | 168 | */ |
169 | 169 | private function knowVisitorPermissions() { |
170 | 170 | # Sólamente usuarios logeados |
171 | - if($this->controllerConfig['users_logged'] && !$this->is_logged) { |
|
171 | + if ($this->controllerConfig['users_logged'] && !$this->is_logged) { |
|
172 | 172 | $this->functions->redir(); |
173 | 173 | } |
174 | 174 | |
175 | 175 | # Sólamente usuarios no logeados |
176 | - if($this->controllerConfig['users_not_logged'] && $this->is_logged) { |
|
176 | + if ($this->controllerConfig['users_not_logged'] && $this->is_logged) { |
|
177 | 177 | $this->functions->redir(); |
178 | 178 | } |
179 | 179 | } |
@@ -19,28 +19,28 @@ discard block |
||
19 | 19 | |
20 | 20 | final class Arrays extends \Twig_Extension { |
21 | 21 | |
22 | - //------------------------------------------------ |
|
22 | + //------------------------------------------------ |
|
23 | 23 | |
24 | 24 | /** |
25 | - * Suma los contenidos del segundo arreglo en el primer arreglo, en las coincidencias de llaves. |
|
26 | - * |
|
27 | - * Si el primer arreglo está vacío, copiará todo el segundo arreglo en el primero. |
|
28 | - * |
|
29 | - * Si el segundo arreglo está vacío, copiará todo el primer arreglo en el segundo. |
|
30 | - * |
|
31 | - * Si el arreglo $a tiene una estructura distinta a $b, la estructura de $a queda intacta y sólamente, |
|
32 | - * se hará sumas en las posiciones donde haya coincidencias de llaves. |
|
33 | - * |
|
34 | - * El valor null será tomado como cero. |
|
35 | - * |
|
36 | - * @param array $a: Primer arreglo |
|
37 | - * @param array $b: Segundo arreglo |
|
38 | - * |
|
39 | - * @throws RuntimeException si los arreglos son de distinto nivel |
|
40 | - * @throws RuntimeException si en la posición de coincidencia no se puede realizar una operación de suma |
|
41 | - * |
|
42 | - * @return array fusión de los dos arreglos, dejando intactal estructura de $a |
|
43 | - */ |
|
25 | + * Suma los contenidos del segundo arreglo en el primer arreglo, en las coincidencias de llaves. |
|
26 | + * |
|
27 | + * Si el primer arreglo está vacío, copiará todo el segundo arreglo en el primero. |
|
28 | + * |
|
29 | + * Si el segundo arreglo está vacío, copiará todo el primer arreglo en el segundo. |
|
30 | + * |
|
31 | + * Si el arreglo $a tiene una estructura distinta a $b, la estructura de $a queda intacta y sólamente, |
|
32 | + * se hará sumas en las posiciones donde haya coincidencias de llaves. |
|
33 | + * |
|
34 | + * El valor null será tomado como cero. |
|
35 | + * |
|
36 | + * @param array $a: Primer arreglo |
|
37 | + * @param array $b: Segundo arreglo |
|
38 | + * |
|
39 | + * @throws RuntimeException si los arreglos son de distinto nivel |
|
40 | + * @throws RuntimeException si en la posición de coincidencia no se puede realizar una operación de suma |
|
41 | + * |
|
42 | + * @return array fusión de los dos arreglos, dejando intactal estructura de $a |
|
43 | + */ |
|
44 | 44 | final public static function arrays_sum(array $a, array $b) : array { |
45 | 45 | # Si alguno está vacío |
46 | 46 | if(sizeof($a) == 0) { |
@@ -84,13 +84,13 @@ discard block |
||
84 | 84 | //------------------------------------------------ |
85 | 85 | |
86 | 86 | /** |
87 | - * Dado un índice asociativo y un arreglo, devuelve el índice numérico correspondiente al asociativo |
|
88 | - * |
|
89 | - * @param string $index: Índice asociativo del arreglo |
|
90 | - * @param array $a: Arreglo a evaluar |
|
91 | - * |
|
92 | - * @return int el índice correspondiente, -1 si no existe el indice |
|
93 | - */ |
|
87 | + * Dado un índice asociativo y un arreglo, devuelve el índice numérico correspondiente al asociativo |
|
88 | + * |
|
89 | + * @param string $index: Índice asociativo del arreglo |
|
90 | + * @param array $a: Arreglo a evaluar |
|
91 | + * |
|
92 | + * @return int el índice correspondiente, -1 si no existe el indice |
|
93 | + */ |
|
94 | 94 | final public static function get_key_by_index(string $index, array $a) : int { |
95 | 95 | $i = 0; |
96 | 96 | foreach ($a as $key => $val) { |
@@ -105,14 +105,14 @@ discard block |
||
105 | 105 | //------------------------------------------------ |
106 | 106 | |
107 | 107 | /** |
108 | - * Elimina todos los elementos repetidos de un array |
|
109 | - * (string) '1' se considera igual a (int) 1 |
|
110 | - * |
|
111 | - * @param array $a: Arreglo a evaluar |
|
112 | - * |
|
113 | - * @return array devuelve un arreglo sin elementos repetidos |
|
114 | - * http://stackoverflow.com/questions/8321620/array-unique-vs-array-flip |
|
115 | - */ |
|
108 | + * Elimina todos los elementos repetidos de un array |
|
109 | + * (string) '1' se considera igual a (int) 1 |
|
110 | + * |
|
111 | + * @param array $a: Arreglo a evaluar |
|
112 | + * |
|
113 | + * @return array devuelve un arreglo sin elementos repetidos |
|
114 | + * http://stackoverflow.com/questions/8321620/array-unique-vs-array-flip |
|
115 | + */ |
|
116 | 116 | final public static function unique_array(array $a) : array { |
117 | 117 | return array_keys(array_flip($a)); |
118 | 118 | } |
@@ -120,12 +120,12 @@ discard block |
||
120 | 120 | //------------------------------------------------ |
121 | 121 | |
122 | 122 | /** |
123 | - * Evalúa si un arreglo es de tipo asociativo o no |
|
124 | - * |
|
125 | - * @param array $a: Arreglo a evaluar |
|
126 | - * |
|
127 | - * @return false si no lo es, true si lo es |
|
128 | - */ |
|
123 | + * Evalúa si un arreglo es de tipo asociativo o no |
|
124 | + * |
|
125 | + * @param array $a: Arreglo a evaluar |
|
126 | + * |
|
127 | + * @return false si no lo es, true si lo es |
|
128 | + */ |
|
129 | 129 | final public static function is_assoc(array $a) : bool { |
130 | 130 | if(sizeof($a) === 0) { |
131 | 131 | return false; |
@@ -137,12 +137,12 @@ discard block |
||
137 | 137 | //------------------------------------------------ |
138 | 138 | |
139 | 139 | /** |
140 | - * Evalúa si un arreglo es secuencial (de índices numéricos) |
|
141 | - * |
|
142 | - * @param array $a: Arreglo a evaluar |
|
143 | - * |
|
144 | - * @return false si no lo es, true si lo es |
|
145 | - */ |
|
140 | + * Evalúa si un arreglo es secuencial (de índices numéricos) |
|
141 | + * |
|
142 | + * @param array $a: Arreglo a evaluar |
|
143 | + * |
|
144 | + * @return false si no lo es, true si lo es |
|
145 | + */ |
|
146 | 146 | final public static function is_numeric_array(array $a) : bool { |
147 | 147 | return !self::is_assoc($a); |
148 | 148 | } |
@@ -150,12 +150,12 @@ discard block |
||
150 | 150 | //------------------------------------------------ |
151 | 151 | |
152 | 152 | /** |
153 | - * Obtiene de forma random un elemento de un arreglo |
|
154 | - * |
|
155 | - * @param array $a: Arreglo a evaluar |
|
156 | - * |
|
157 | - * @return mixed, elemento random dentro del arreglo |
|
158 | - */ |
|
153 | + * Obtiene de forma random un elemento de un arreglo |
|
154 | + * |
|
155 | + * @param array $a: Arreglo a evaluar |
|
156 | + * |
|
157 | + * @return mixed, elemento random dentro del arreglo |
|
158 | + */ |
|
159 | 159 | final public static function array_random_element(array $a) { |
160 | 160 | return $a[array_rand($a)]; |
161 | 161 | } |
@@ -163,10 +163,10 @@ discard block |
||
163 | 163 | //------------------------------------------------ |
164 | 164 | |
165 | 165 | /** |
166 | - * Se obtiene de Twig_Extension y sirve para que cada función esté disponible como etiqueta en twig |
|
167 | - * |
|
168 | - * @return array: Todas las funciones con sus respectivos nombres de acceso en plantillas twig |
|
169 | - */ |
|
166 | + * Se obtiene de Twig_Extension y sirve para que cada función esté disponible como etiqueta en twig |
|
167 | + * |
|
168 | + * @return array: Todas las funciones con sus respectivos nombres de acceso en plantillas twig |
|
169 | + */ |
|
170 | 170 | public function getFunctions() : array { |
171 | 171 | return array( |
172 | 172 | new \Twig_Function('get_key_by_index', array($this, 'get_key_by_index')), |
@@ -181,10 +181,10 @@ discard block |
||
181 | 181 | //------------------------------------------------ |
182 | 182 | |
183 | 183 | /** |
184 | - * Identificador único para la extensión de twig |
|
185 | - * |
|
186 | - * @return string: Nombre de la extensión |
|
187 | - */ |
|
184 | + * Identificador único para la extensión de twig |
|
185 | + * |
|
186 | + * @return string: Nombre de la extensión |
|
187 | + */ |
|
188 | 188 | public function getName() : string { |
189 | 189 | return 'ocrend_framework_helper_arrays'; |
190 | 190 | } |
@@ -43,32 +43,32 @@ discard block |
||
43 | 43 | */ |
44 | 44 | final public static function arrays_sum(array $a, array $b) : array { |
45 | 45 | # Si alguno está vacío |
46 | - if(sizeof($a) == 0) { |
|
46 | + if (sizeof($a) == 0) { |
|
47 | 47 | return $b; |
48 | - } else if(sizeof($b) == 0) { |
|
48 | + } else if (sizeof($b) == 0) { |
|
49 | 49 | return $a; |
50 | 50 | } |
51 | 51 | |
52 | 52 | # Recorrer el segundo arreglo |
53 | - foreach($b as $llave => $contenido) { |
|
53 | + foreach ($b as $llave => $contenido) { |
|
54 | 54 | |
55 | 55 | # Desnivel |
56 | - if(is_array($contenido)) { |
|
57 | - throw new \RuntimeException('El arreglo $b en la llave '.$llave.' es un arreglo y no puede operar.'); |
|
56 | + if (is_array($contenido)) { |
|
57 | + throw new \RuntimeException('El arreglo $b en la llave ' . $llave . ' es un arreglo y no puede operar.'); |
|
58 | 58 | break; |
59 | 59 | } |
60 | 60 | |
61 | 61 | # Existencia de la llave |
62 | - if(array_key_exists($llave,$a)) { |
|
62 | + if (array_key_exists($llave, $a)) { |
|
63 | 63 | # Excepciones de uso |
64 | - if(is_array($a[$llave])) { |
|
65 | - throw new \RuntimeException('El arreglo $a en la llave '.$llave.' es un arreglo y no puede operar.'); |
|
64 | + if (is_array($a[$llave])) { |
|
65 | + throw new \RuntimeException('El arreglo $a en la llave ' . $llave . ' es un arreglo y no puede operar.'); |
|
66 | 66 | break; |
67 | - } else if(!is_numeric($a[$llave]) && null !== $a[$llave]) { |
|
68 | - throw new \RuntimeException('El arreglo $a en la llave '.$llave.' no es un número y no puede operar.'); |
|
67 | + } else if (!is_numeric($a[$llave]) && null !== $a[$llave]) { |
|
68 | + throw new \RuntimeException('El arreglo $a en la llave ' . $llave . ' no es un número y no puede operar.'); |
|
69 | 69 | break; |
70 | - } else if(!is_numeric($b[$llave]) && null !== $b[$llave]) { |
|
71 | - throw new \RuntimeException('El arreglo $b en la llave '.$llave.' no es un número y no puede operar.'); |
|
70 | + } else if (!is_numeric($b[$llave]) && null !== $b[$llave]) { |
|
71 | + throw new \RuntimeException('El arreglo $b en la llave ' . $llave . ' no es un número y no puede operar.'); |
|
72 | 72 | break; |
73 | 73 | } |
74 | 74 | |
@@ -94,7 +94,7 @@ discard block |
||
94 | 94 | final public static function get_key_by_index(string $index, array $a) : int { |
95 | 95 | $i = 0; |
96 | 96 | foreach ($a as $key => $val) { |
97 | - if($key == $index) { |
|
97 | + if ($key == $index) { |
|
98 | 98 | return (int) $i; |
99 | 99 | } |
100 | 100 | $i++; |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | * @return false si no lo es, true si lo es |
128 | 128 | */ |
129 | 129 | final public static function is_assoc(array $a) : bool { |
130 | - if(sizeof($a) === 0) { |
|
130 | + if (sizeof($a) === 0) { |
|
131 | 131 | return false; |
132 | 132 | } |
133 | 133 |
@@ -20,13 +20,13 @@ discard block |
||
20 | 20 | final class Strings extends \Twig_Extension { |
21 | 21 | //------------------------------------------------ |
22 | 22 | /** |
23 | - * Convierte un tiempo dado al formato hace 1 minuto, hace 2 horas, hace 1 año ... |
|
24 | - * |
|
25 | - * @param int $from: Tiempo en segundo desde donde se desea contar |
|
26 | - * @param int $to: Tiempo en segundo hasta donde se desea contar, si no se pasa por defecto es el tiempo actual |
|
27 | - * |
|
28 | - * @return string con la forma: hace 20 segundos, hace 1 minuto, hace 2 horas, hace 4 días, hace 1 semana, hace 3 meses, hace 1 año ... |
|
29 | - */ |
|
23 | + * Convierte un tiempo dado al formato hace 1 minuto, hace 2 horas, hace 1 año ... |
|
24 | + * |
|
25 | + * @param int $from: Tiempo en segundo desde donde se desea contar |
|
26 | + * @param int $to: Tiempo en segundo hasta donde se desea contar, si no se pasa por defecto es el tiempo actual |
|
27 | + * |
|
28 | + * @return string con la forma: hace 20 segundos, hace 1 minuto, hace 2 horas, hace 4 días, hace 1 semana, hace 3 meses, hace 1 año ... |
|
29 | + */ |
|
30 | 30 | final public static function amigable_time(int $from, int $to = 0) : string { |
31 | 31 | $to = $to == 0 ? time() : $to; |
32 | 32 | $form = new \DateTime(date('Y-m-d H:i:s', $from)); |
@@ -65,39 +65,39 @@ discard block |
||
65 | 65 | } |
66 | 66 | //------------------------------------------------ |
67 | 67 | /** |
68 | - * Compara un string hash con un string sin hash, si el string sin hash al encriptar posee la misma llave que hash, son iguales |
|
69 | - * |
|
70 | - * @param string $hash: Hash con la forma $2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G |
|
71 | - * @param string $s2: Cadena de texto a comparar |
|
72 | - * |
|
73 | - * @example Strings::chash('$2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G','123456'); //return true |
|
74 | - * |
|
75 | - * @return true si $s2 contiene la misma llave que $hash, por tanto el contenido de $hash es $s2, de lo contrario false |
|
76 | - */ |
|
68 | + * Compara un string hash con un string sin hash, si el string sin hash al encriptar posee la misma llave que hash, son iguales |
|
69 | + * |
|
70 | + * @param string $hash: Hash con la forma $2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G |
|
71 | + * @param string $s2: Cadena de texto a comparar |
|
72 | + * |
|
73 | + * @example Strings::chash('$2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G','123456'); //return true |
|
74 | + * |
|
75 | + * @return true si $s2 contiene la misma llave que $hash, por tanto el contenido de $hash es $s2, de lo contrario false |
|
76 | + */ |
|
77 | 77 | final public static function chash(string $hash, string $s2) : bool { |
78 | 78 | return ($hash == crypt($s2, substr($hash, 0, 29))); |
79 | - } |
|
80 | - //------------------------------------------------ |
|
79 | + } |
|
80 | + //------------------------------------------------ |
|
81 | 81 | /** |
82 | - * Devuelve un hash DINÁMICO, para comparar un hash con un elemento se utiliza chash |
|
83 | - * |
|
84 | - * @param string $p: Cadena de texto a encriptar |
|
85 | - * |
|
86 | - * @return string Hash, con la forma $2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G |
|
87 | - */ |
|
82 | + * Devuelve un hash DINÁMICO, para comparar un hash con un elemento se utiliza chash |
|
83 | + * |
|
84 | + * @param string $p: Cadena de texto a encriptar |
|
85 | + * |
|
86 | + * @return string Hash, con la forma $2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G |
|
87 | + */ |
|
88 | 88 | final public static function hash(string $p) : string { |
89 | 89 | return crypt($p, '$2a$10$' . substr(sha1(mt_rand()),0,22)); |
90 | 90 | } |
91 | 91 | //------------------------------------------------ |
92 | 92 | /** |
93 | - * Calcula el tiempo de diferencia entre dos fechas |
|
94 | - * |
|
95 | - * @param string $ini: Fecha menor con el formato d-m-Y ó d/m/Y |
|
96 | - * @param string $fin: Fecha mayor con el formato d-m-Y ó d/m/Y |
|
97 | - * |
|
98 | - * @return integer con la diferencia de tiempo en días |
|
99 | - * |
|
100 | - */ |
|
93 | + * Calcula el tiempo de diferencia entre dos fechas |
|
94 | + * |
|
95 | + * @param string $ini: Fecha menor con el formato d-m-Y ó d/m/Y |
|
96 | + * @param string $fin: Fecha mayor con el formato d-m-Y ó d/m/Y |
|
97 | + * |
|
98 | + * @return integer con la diferencia de tiempo en días |
|
99 | + * |
|
100 | + */ |
|
101 | 101 | final public static function date_difference(string $ini, string $fin) : int { |
102 | 102 | $ini_i = explode('-',str_replace('/','-',$ini)); |
103 | 103 | $fin_i = explode('-',str_replace('/','-',$fin)); |
@@ -105,90 +105,90 @@ discard block |
||
105 | 105 | } |
106 | 106 | //------------------------------------------------ |
107 | 107 | /** |
108 | - * Calcula la edad de una persona segun la fecha de nacimiento |
|
109 | - * |
|
110 | - * @param string $cumple: Fecha de nacimiento con el formato d-m-Y ó d/m/Y |
|
111 | - * |
|
112 | - * @return integer con la edad |
|
113 | - * |
|
114 | - */ |
|
108 | + * Calcula la edad de una persona segun la fecha de nacimiento |
|
109 | + * |
|
110 | + * @param string $cumple: Fecha de nacimiento con el formato d-m-Y ó d/m/Y |
|
111 | + * |
|
112 | + * @return integer con la edad |
|
113 | + * |
|
114 | + */ |
|
115 | 115 | final public static function calculate_age(string $cumple) : int { |
116 | 116 | $age = explode('.', (string) (self::date_difference($cumple,date('d-m-Y',time())) / 365)); |
117 | 117 | return (int) $age[0]; |
118 | 118 | } |
119 | 119 | //------------------------------------------------ |
120 | 120 | /** |
121 | - * Calcula cuántos días tiene el mes actual |
|
122 | - * |
|
123 | - * @return integer con la cantidad de días del mes |
|
124 | - * |
|
125 | - */ |
|
121 | + * Calcula cuántos días tiene el mes actual |
|
122 | + * |
|
123 | + * @return integer con la cantidad de días del mes |
|
124 | + * |
|
125 | + */ |
|
126 | 126 | final public static function days_of_month() : int { |
127 | 127 | return cal_days_in_month(CAL_GREGORIAN, date('m',time()), date('Y',time())); |
128 | 128 | } |
129 | 129 | //------------------------------------------------ |
130 | 130 | /** |
131 | - * Verifica si una cadena de texto tiene forma de email |
|
132 | - * |
|
133 | - * @param string $address: Cadena de texto con el email |
|
134 | - * |
|
135 | - * @return bool devuelve TRUE si es un email y FALSE si no lo es |
|
136 | - */ |
|
131 | + * Verifica si una cadena de texto tiene forma de email |
|
132 | + * |
|
133 | + * @param string $address: Cadena de texto con el email |
|
134 | + * |
|
135 | + * @return bool devuelve TRUE si es un email y FALSE si no lo es |
|
136 | + */ |
|
137 | 137 | final public static function is_email(string $address) : bool { |
138 | 138 | return filter_var($address, FILTER_VALIDATE_EMAIL); |
139 | 139 | } |
140 | 140 | //------------------------------------------------ |
141 | 141 | /** |
142 | - * Remueve todos los espacios en blanco de un string |
|
143 | - * |
|
144 | - * @param string $s: Cadena de texto a convertir |
|
145 | - * |
|
146 | - * @return string del texto sin espacios |
|
147 | - */ |
|
142 | + * Remueve todos los espacios en blanco de un string |
|
143 | + * |
|
144 | + * @param string $s: Cadena de texto a convertir |
|
145 | + * |
|
146 | + * @return string del texto sin espacios |
|
147 | + */ |
|
148 | 148 | final public static function remove_spaces(string $s) : string { |
149 | 149 | return trim(str_replace(' ','',$s)); |
150 | 150 | } |
151 | 151 | //------------------------------------------------ |
152 | 152 | /** |
153 | - * Analiza si una cadena de texto es alfanumérica |
|
154 | - * |
|
155 | - * @param string $s: Cadena de texto a verificar |
|
156 | - * |
|
157 | - * @return bool, verdadero si es alfanumerica, falso si no |
|
158 | - */ |
|
153 | + * Analiza si una cadena de texto es alfanumérica |
|
154 | + * |
|
155 | + * @param string $s: Cadena de texto a verificar |
|
156 | + * |
|
157 | + * @return bool, verdadero si es alfanumerica, falso si no |
|
158 | + */ |
|
159 | 159 | final public static function alphanumeric(string $s) : bool { |
160 | 160 | return ctype_alnum(self::remove_spaces($s)); |
161 | 161 | } |
162 | 162 | //------------------------------------------------ |
163 | 163 | /** |
164 | - * Analiza si una cadena de texto verificando si sólamente tiene letras |
|
165 | - * |
|
166 | - * @param string $s: Cadena de texto a verificar |
|
167 | - * |
|
168 | - * @return bool, verdadero si sólamente tiene letras, falso si no |
|
169 | - */ |
|
164 | + * Analiza si una cadena de texto verificando si sólamente tiene letras |
|
165 | + * |
|
166 | + * @param string $s: Cadena de texto a verificar |
|
167 | + * |
|
168 | + * @return bool, verdadero si sólamente tiene letras, falso si no |
|
169 | + */ |
|
170 | 170 | final public static function only_letters(string $s) : bool { |
171 | 171 | return ctype_alpha(self::remove_spaces($s)); |
172 | 172 | } |
173 | 173 | //------------------------------------------------ |
174 | 174 | /** |
175 | - * Analiza si una cadena de texto contiene sólamente letras y números |
|
176 | - * |
|
177 | - * @param string $s: Cadena de texto a verificar |
|
178 | - * |
|
179 | - * @return bool, verdadero si sólamente contiene letras y números, falso si no |
|
180 | - */ |
|
175 | + * Analiza si una cadena de texto contiene sólamente letras y números |
|
176 | + * |
|
177 | + * @param string $s: Cadena de texto a verificar |
|
178 | + * |
|
179 | + * @return bool, verdadero si sólamente contiene letras y números, falso si no |
|
180 | + */ |
|
181 | 181 | final public static function letters_and_numbers(string $s) : bool { |
182 | 182 | return (boolean) preg_match('/^[\w.]*$/', self::remove_spaces($s)); |
183 | 183 | } |
184 | 184 | //------------------------------------------------ |
185 | 185 | /** |
186 | - * Convierte una expresión de texto, a una compatible con url amigables |
|
187 | - * |
|
188 | - * @param string $url: Cadena de texto a convertir |
|
189 | - * |
|
190 | - * @return string Cadena de texto con formato de url amigable |
|
191 | - */ |
|
186 | + * Convierte una expresión de texto, a una compatible con url amigables |
|
187 | + * |
|
188 | + * @param string $url: Cadena de texto a convertir |
|
189 | + * |
|
190 | + * @return string Cadena de texto con formato de url amigable |
|
191 | + */ |
|
192 | 192 | final public static function url_amigable(string $url) : string { |
193 | 193 | $url = strtolower($url); |
194 | 194 | $url = str_replace (['á', 'é', 'í', 'ó', 'ú', 'ñ'],['a', 'e', 'i', 'o', 'u', 'n'], $url); |
@@ -197,12 +197,12 @@ discard block |
||
197 | 197 | } |
198 | 198 | //------------------------------------------------ |
199 | 199 | /** |
200 | - * Convierte código BBCode en su equivalente HTML |
|
201 | - * |
|
202 | - * @param string $string: Código con formato BBCode dentro |
|
203 | - * |
|
204 | - * @return string del código BBCode transformado en HTML |
|
205 | - */ |
|
200 | + * Convierte código BBCode en su equivalente HTML |
|
201 | + * |
|
202 | + * @param string $string: Código con formato BBCode dentro |
|
203 | + * |
|
204 | + * @return string del código BBCode transformado en HTML |
|
205 | + */ |
|
206 | 206 | final public static function bbcode(string $string) : string { |
207 | 207 | $BBcode = array( |
208 | 208 | '/\[i\](.*?)\[\/i\]/is', |
@@ -250,58 +250,58 @@ discard block |
||
250 | 250 | } |
251 | 251 | //------------------------------------------------ |
252 | 252 | /** |
253 | - * Dice si un string comienza con un caracter especificado |
|
254 | - * |
|
255 | - * @param string $sx: Caracter de inicio |
|
256 | - * @param string $str: String a evaluar |
|
257 | - * @param bool $case_sensitive: Boolean para definir si será seible a mayúsculas o no |
|
258 | - * |
|
259 | - * @return bool: True si comienza con el caracter especificado, False si no |
|
260 | - */ |
|
253 | + * Dice si un string comienza con un caracter especificado |
|
254 | + * |
|
255 | + * @param string $sx: Caracter de inicio |
|
256 | + * @param string $str: String a evaluar |
|
257 | + * @param bool $case_sensitive: Boolean para definir si será seible a mayúsculas o no |
|
258 | + * |
|
259 | + * @return bool: True si comienza con el caracter especificado, False si no |
|
260 | + */ |
|
261 | 261 | final public static function begin_with(string $sx, string $str) : bool { |
262 | 262 | return (bool) (strlen($str) > 0 and $str[0] == $sx); |
263 | 263 | } |
264 | 264 | //------------------------------------------------ |
265 | 265 | /** |
266 | - * Dice si un string termina con una caracter especificado |
|
267 | - * |
|
268 | - * @param string $sx: Caracter del final |
|
269 | - * @param string $str: String a evaluar |
|
270 | - * |
|
271 | - * @return bool: True si termina con el caracter especificado, False si no |
|
272 | - */ |
|
266 | + * Dice si un string termina con una caracter especificado |
|
267 | + * |
|
268 | + * @param string $sx: Caracter del final |
|
269 | + * @param string $str: String a evaluar |
|
270 | + * |
|
271 | + * @return bool: True si termina con el caracter especificado, False si no |
|
272 | + */ |
|
273 | 273 | final public static function end_with(string $sx, string $str) : bool { |
274 | 274 | return (bool) (strlen($str) > 0 and $str[strlen($str) - 1] == $sx); |
275 | 275 | } |
276 | 276 | //------------------------------------------------ |
277 | 277 | /** |
278 | - * Ver si un string está contenido en otro |
|
279 | - * |
|
280 | - * @param $s: String contenido en $str |
|
281 | - * @param $str: String a evaluar |
|
282 | - * |
|
283 | - * @return bool: True si $s está dentro de $str, False si no |
|
284 | - */ |
|
278 | + * Ver si un string está contenido en otro |
|
279 | + * |
|
280 | + * @param $s: String contenido en $str |
|
281 | + * @param $str: String a evaluar |
|
282 | + * |
|
283 | + * @return bool: True si $s está dentro de $str, False si no |
|
284 | + */ |
|
285 | 285 | final public static function contain(string $s, string $str) : bool { |
286 | 286 | return (bool) (strpos($str, $s) !== false); |
287 | 287 | } |
288 | 288 | //------------------------------------------------ |
289 | 289 | /** |
290 | - * Devuelve la cantidad de palabras en un string |
|
291 | - * |
|
292 | - * @param $str: String a evaluar |
|
293 | - * |
|
294 | - * @return int: Cantidad de palabras |
|
295 | - */ |
|
290 | + * Devuelve la cantidad de palabras en un string |
|
291 | + * |
|
292 | + * @param $str: String a evaluar |
|
293 | + * |
|
294 | + * @return int: Cantidad de palabras |
|
295 | + */ |
|
296 | 296 | final public static function count_words(string $s) : int { |
297 | 297 | return str_word_count($s,0); |
298 | 298 | } |
299 | 299 | //------------------------------------------------ |
300 | 300 | /** |
301 | - * Se obtiene de Twig_Extension y sirve para que cada función esté disponible como etiqueta en twig |
|
302 | - * |
|
303 | - * @return array: Todas las funciones con sus respectivos nombres de acceso en plantillas twig |
|
304 | - */ |
|
301 | + * Se obtiene de Twig_Extension y sirve para que cada función esté disponible como etiqueta en twig |
|
302 | + * |
|
303 | + * @return array: Todas las funciones con sus respectivos nombres de acceso en plantillas twig |
|
304 | + */ |
|
305 | 305 | public function getFunctions() : array { |
306 | 306 | return array( |
307 | 307 | new \Twig_Function('amigable_time', array($this, 'amigable_time')), |
@@ -325,10 +325,10 @@ discard block |
||
325 | 325 | } |
326 | 326 | //------------------------------------------------ |
327 | 327 | /** |
328 | - * Identificador único para la extensión de twig |
|
329 | - * |
|
330 | - * @return string: Nombre de la extensión |
|
331 | - */ |
|
328 | + * Identificador único para la extensión de twig |
|
329 | + * |
|
330 | + * @return string: Nombre de la extensión |
|
331 | + */ |
|
332 | 332 | public function getName() : string { |
333 | 333 | return 'ocrend_framework_helper_strings'; |
334 | 334 | } |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | } elseif ($diff->m == 1) { |
42 | 42 | $text = '1 mes'; |
43 | 43 | } elseif ($diff->d > 7) { |
44 | - $text = ceil($diff->d / 7) . ' semanas'; |
|
44 | + $text = ceil($diff->d/7) . ' semanas'; |
|
45 | 45 | } elseif ($diff->d == 7) { |
46 | 46 | $text = '1 semana'; |
47 | 47 | } elseif ($diff->d > 1) { |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | * @return string Hash, con la forma $2a$10$87b2b603324793cc37f8dOPFTnHRY0lviq5filK5cN4aMCQDJcC9G |
87 | 87 | */ |
88 | 88 | final public static function hash(string $p) : string { |
89 | - return crypt($p, '$2a$10$' . substr(sha1(mt_rand()),0,22)); |
|
89 | + return crypt($p, '$2a$10$' . substr(sha1(mt_rand()), 0, 22)); |
|
90 | 90 | } |
91 | 91 | //------------------------------------------------ |
92 | 92 | /** |
@@ -99,9 +99,9 @@ discard block |
||
99 | 99 | * |
100 | 100 | */ |
101 | 101 | final public static function date_difference(string $ini, string $fin) : int { |
102 | - $ini_i = explode('-',str_replace('/','-',$ini)); |
|
103 | - $fin_i = explode('-',str_replace('/','-',$fin)); |
|
104 | - return floor((mktime(0, 0, 0, $fin_i[1], $fin_i[0], $fin_i[2]) - mktime(0, 0, 0, $ini_i[1], $ini_i[0], $ini_i[2])) / 86400); |
|
102 | + $ini_i = explode('-', str_replace('/', '-', $ini)); |
|
103 | + $fin_i = explode('-', str_replace('/', '-', $fin)); |
|
104 | + return floor((mktime(0, 0, 0, $fin_i[1], $fin_i[0], $fin_i[2]) - mktime(0, 0, 0, $ini_i[1], $ini_i[0], $ini_i[2]))/86400); |
|
105 | 105 | } |
106 | 106 | //------------------------------------------------ |
107 | 107 | /** |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | * |
114 | 114 | */ |
115 | 115 | final public static function calculate_age(string $cumple) : int { |
116 | - $age = explode('.', (string) (self::date_difference($cumple,date('d-m-Y',time())) / 365)); |
|
116 | + $age = explode('.', (string) (self::date_difference($cumple, date('d-m-Y', time()))/365)); |
|
117 | 117 | return (int) $age[0]; |
118 | 118 | } |
119 | 119 | //------------------------------------------------ |
@@ -124,7 +124,7 @@ discard block |
||
124 | 124 | * |
125 | 125 | */ |
126 | 126 | final public static function days_of_month() : int { |
127 | - return cal_days_in_month(CAL_GREGORIAN, date('m',time()), date('Y',time())); |
|
127 | + return cal_days_in_month(CAL_GREGORIAN, date('m', time()), date('Y', time())); |
|
128 | 128 | } |
129 | 129 | //------------------------------------------------ |
130 | 130 | /** |
@@ -146,7 +146,7 @@ discard block |
||
146 | 146 | * @return string del texto sin espacios |
147 | 147 | */ |
148 | 148 | final public static function remove_spaces(string $s) : string { |
149 | - return trim(str_replace(' ','',$s)); |
|
149 | + return trim(str_replace(' ', '', $s)); |
|
150 | 150 | } |
151 | 151 | //------------------------------------------------ |
152 | 152 | /** |
@@ -191,9 +191,9 @@ discard block |
||
191 | 191 | */ |
192 | 192 | final public static function url_amigable(string $url) : string { |
193 | 193 | $url = strtolower($url); |
194 | - $url = str_replace (['á', 'é', 'í', 'ó', 'ú', 'ñ'],['a', 'e', 'i', 'o', 'u', 'n'], $url); |
|
195 | - $url = str_replace([' ', '&', '\r\n', '\n', '+', '%'],'-',$url); |
|
196 | - return preg_replace (['/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'],['', '-', ''], $url); |
|
194 | + $url = str_replace(['á', 'é', 'í', 'ó', 'ú', 'ñ'], ['a', 'e', 'i', 'o', 'u', 'n'], $url); |
|
195 | + $url = str_replace([' ', '&', '\r\n', '\n', '+', '%'], '-', $url); |
|
196 | + return preg_replace(['/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'], ['', '-', ''], $url); |
|
197 | 197 | } |
198 | 198 | //------------------------------------------------ |
199 | 199 | /** |
@@ -246,7 +246,7 @@ discard block |
||
246 | 246 | '<span style="font-size: $1px">$2</span>', |
247 | 247 | '<span style="font-family: $1">$2</span>' |
248 | 248 | ); |
249 | - return nl2br(preg_replace($BBcode,$HTML,$string)); |
|
249 | + return nl2br(preg_replace($BBcode, $HTML, $string)); |
|
250 | 250 | } |
251 | 251 | //------------------------------------------------ |
252 | 252 | /** |
@@ -294,7 +294,7 @@ discard block |
||
294 | 294 | * @return int: Cantidad de palabras |
295 | 295 | */ |
296 | 296 | final public static function count_words(string $s) : int { |
297 | - return str_word_count($s,0); |
|
297 | + return str_word_count($s, 0); |
|
298 | 298 | } |
299 | 299 | //------------------------------------------------ |
300 | 300 | /** |
@@ -20,14 +20,14 @@ discard block |
||
20 | 20 | final class Emails { |
21 | 21 | |
22 | 22 | /** |
23 | - * FUNCIÓN NO ACCESIBLE, USO ESTRICTO PARA UNA FUNCIÓN INTERNA DEL HELPER |
|
24 | - * Inicializa la clase PHPMailer y las configuraciones necesarias |
|
25 | - * Método privado utilizado en todo el Helper |
|
26 | - * |
|
27 | - * @param bool $is_smtp: Define si se hará la conexión a través de SMTP o no |
|
28 | - * |
|
29 | - * @return PHPMailer object, retorna un objeto de la clase PHPMailer |
|
30 | - */ |
|
23 | + * FUNCIÓN NO ACCESIBLE, USO ESTRICTO PARA UNA FUNCIÓN INTERNA DEL HELPER |
|
24 | + * Inicializa la clase PHPMailer y las configuraciones necesarias |
|
25 | + * Método privado utilizado en todo el Helper |
|
26 | + * |
|
27 | + * @param bool $is_smtp: Define si se hará la conexión a través de SMTP o no |
|
28 | + * |
|
29 | + * @return PHPMailer object, retorna un objeto de la clase PHPMailer |
|
30 | + */ |
|
31 | 31 | final private static function init(bool $is_smtp = true) : \PHPMailer { |
32 | 32 | global $config; |
33 | 33 | |
@@ -60,22 +60,22 @@ discard block |
||
60 | 60 | //------------------------------------------------ |
61 | 61 | |
62 | 62 | /** |
63 | - * Envía un correo electrónico utilizando PHPMailer |
|
64 | - * |
|
65 | - * @param array $dest: Arreglo con la forma array( |
|
66 | - * 'email destinatario 1' => 'nombre destinatario 1', |
|
67 | - * 'email destinatario 2' => 'nombre destinatario 2' |
|
68 | - * ) |
|
69 | - * @param string $HTML: Contenido en HTML del email |
|
70 | - * @param string $titulo: Asunto del email |
|
71 | - * @param bool $is_smtp: Define si se hará la conexión a través de SMTP o no |
|
72 | - * @param array $adj: Arreglo con direccion local de los adjuntos a enviar, con la forma array( |
|
73 | - * 'ruta archivo 1', |
|
74 | - * 'ruta archivo 2' |
|
75 | - * ) |
|
76 | - * |
|
77 | - * @return true si fue enviado correctamente, string con el Error descrito por PHPMailer |
|
78 | - */ |
|
63 | + * Envía un correo electrónico utilizando PHPMailer |
|
64 | + * |
|
65 | + * @param array $dest: Arreglo con la forma array( |
|
66 | + * 'email destinatario 1' => 'nombre destinatario 1', |
|
67 | + * 'email destinatario 2' => 'nombre destinatario 2' |
|
68 | + * ) |
|
69 | + * @param string $HTML: Contenido en HTML del email |
|
70 | + * @param string $titulo: Asunto del email |
|
71 | + * @param bool $is_smtp: Define si se hará la conexión a través de SMTP o no |
|
72 | + * @param array $adj: Arreglo con direccion local de los adjuntos a enviar, con la forma array( |
|
73 | + * 'ruta archivo 1', |
|
74 | + * 'ruta archivo 2' |
|
75 | + * ) |
|
76 | + * |
|
77 | + * @return true si fue enviado correctamente, string con el Error descrito por PHPMailer |
|
78 | + */ |
|
79 | 79 | final public static function send_mail(array $dest, string $HTML, string $titulo, bool $is_smtp = true, array $adj = []) { |
80 | 80 | global $config; |
81 | 81 | |
@@ -104,12 +104,12 @@ discard block |
||
104 | 104 | //------------------------------------------------ |
105 | 105 | |
106 | 106 | /** |
107 | - * Plantilla estándar que muestra de forma amigable el texto, utiliza bootstrap |
|
108 | - * |
|
109 | - * @param string $content: Cadena de texto en HTML, puede ser en bootstrap |
|
110 | - * |
|
111 | - * @return string con el HTML para enviar |
|
112 | - */ |
|
107 | + * Plantilla estándar que muestra de forma amigable el texto, utiliza bootstrap |
|
108 | + * |
|
109 | + * @param string $content: Cadena de texto en HTML, puede ser en bootstrap |
|
110 | + * |
|
111 | + * @return string con el HTML para enviar |
|
112 | + */ |
|
113 | 113 | final public static function plantilla(string $content) : string { |
114 | 114 | return ' |
115 | 115 | <html> |
@@ -35,7 +35,7 @@ discard block |
||
35 | 35 | $mail->CharSet = "UTF-8"; |
36 | 36 | $mail->Encoding = "quoted-printable"; |
37 | 37 | |
38 | - if($is_smtp) { |
|
38 | + if ($is_smtp) { |
|
39 | 39 | $mail->isSMTP(); |
40 | 40 | $mail->SMTPAuth = true; |
41 | 41 | $mail->Host = $config['phpmailer']['host']; |
@@ -88,13 +88,13 @@ discard block |
||
88 | 88 | $mail->Subject = $titulo; |
89 | 89 | $mail->Body = $HTML; |
90 | 90 | |
91 | - if(sizeof($adj)) { |
|
91 | + if (sizeof($adj)) { |
|
92 | 92 | foreach ($adj as $ruta) { |
93 | 93 | $mail->AddAttachment($ruta); |
94 | 94 | } |
95 | 95 | } |
96 | 96 | |
97 | - if(!$mail->send()) { |
|
97 | + if (!$mail->send()) { |
|
98 | 98 | return $mail->ErrorInfo; |
99 | 99 | } |
100 | 100 | |
@@ -118,7 +118,7 @@ discard block |
||
118 | 118 | </head> |
119 | 119 | <body style="font-family: Verdana;"> |
120 | 120 | <section> |
121 | - '.$content.' |
|
121 | + '.$content . ' |
|
122 | 122 | </section> |
123 | 123 | </body> |
124 | 124 | </html>'; |