@@ -5,17 +5,17 @@ |
||
5 | 5 | |
6 | 6 | if (!defined('SOURCE_DIR')) define('SOURCE_DIR', __DIR__); |
7 | 7 | if (preg_match('/vendor/', SOURCE_DIR)) { |
8 | - if (!defined('BASE_DIR')) define('BASE_DIR', SOURCE_DIR . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..'); |
|
9 | - if (!defined('CORE_DIR')) define('CORE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'src'); |
|
10 | -} else { |
|
11 | - if (!defined('BASE_DIR')) define('BASE_DIR', SOURCE_DIR . DIRECTORY_SEPARATOR . '..'); |
|
12 | - if (!defined('CORE_DIR')) define('CORE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'modules'); |
|
8 | + if (!defined('BASE_DIR')) define('BASE_DIR', SOURCE_DIR.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'); |
|
9 | + if (!defined('CORE_DIR')) define('CORE_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'src'); |
|
10 | +}else { |
|
11 | + if (!defined('BASE_DIR')) define('BASE_DIR', SOURCE_DIR.DIRECTORY_SEPARATOR.'..'); |
|
12 | + if (!defined('CORE_DIR')) define('CORE_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'modules'); |
|
13 | 13 | } |
14 | -if (!defined('VENDOR_DIR')) define('VENDOR_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'vendor'); |
|
15 | -if (!defined('LOG_DIR')) define('LOG_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'logs'); |
|
16 | -if (!defined('CACHE_DIR')) define('CACHE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'cache'); |
|
17 | -if (!defined('CONFIG_DIR')) define('CONFIG_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'config'); |
|
18 | -if (!defined('WEB_DIR')) define('WEB_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'html'); |
|
14 | +if (!defined('VENDOR_DIR')) define('VENDOR_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'vendor'); |
|
15 | +if (!defined('LOG_DIR')) define('LOG_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'logs'); |
|
16 | +if (!defined('CACHE_DIR')) define('CACHE_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'cache'); |
|
17 | +if (!defined('CONFIG_DIR')) define('CONFIG_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'config'); |
|
18 | +if (!defined('WEB_DIR')) define('WEB_DIR', BASE_DIR.DIRECTORY_SEPARATOR.'html'); |
|
19 | 19 | |
20 | 20 | defined('PSFS_BOOTSTRAP_LOADED') or define('PSFS_BOOTSTRAP_LOADED', true); |
21 | 21 |
@@ -1,21 +1,43 @@ |
||
1 | 1 | <?php |
2 | 2 | namespace PSFS; |
3 | 3 | |
4 | -if (defined('PSFS_BOOTSTRAP_LOADED')) return; |
|
4 | +if (defined('PSFS_BOOTSTRAP_LOADED')) { |
|
5 | + return; |
|
6 | +} |
|
5 | 7 | |
6 | -if (!defined('SOURCE_DIR')) define('SOURCE_DIR', __DIR__); |
|
8 | +if (!defined('SOURCE_DIR')) { |
|
9 | + define('SOURCE_DIR', __DIR__); |
|
10 | +} |
|
7 | 11 | if (preg_match('/vendor/', SOURCE_DIR)) { |
8 | - if (!defined('BASE_DIR')) define('BASE_DIR', SOURCE_DIR . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..'); |
|
9 | - if (!defined('CORE_DIR')) define('CORE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'src'); |
|
10 | -} else { |
|
11 | - if (!defined('BASE_DIR')) define('BASE_DIR', SOURCE_DIR . DIRECTORY_SEPARATOR . '..'); |
|
12 | - if (!defined('CORE_DIR')) define('CORE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'modules'); |
|
13 | -} |
|
14 | -if (!defined('VENDOR_DIR')) define('VENDOR_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'vendor'); |
|
15 | -if (!defined('LOG_DIR')) define('LOG_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'logs'); |
|
16 | -if (!defined('CACHE_DIR')) define('CACHE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'cache'); |
|
17 | -if (!defined('CONFIG_DIR')) define('CONFIG_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'config'); |
|
18 | -if (!defined('WEB_DIR')) define('WEB_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'html'); |
|
12 | + if (!defined('BASE_DIR')) { |
|
13 | + define('BASE_DIR', SOURCE_DIR . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..'); |
|
14 | + } |
|
15 | + if (!defined('CORE_DIR')) { |
|
16 | + define('CORE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'src'); |
|
17 | + } |
|
18 | + } else { |
|
19 | + if (!defined('BASE_DIR')) { |
|
20 | + define('BASE_DIR', SOURCE_DIR . DIRECTORY_SEPARATOR . '..'); |
|
21 | + } |
|
22 | + if (!defined('CORE_DIR')) { |
|
23 | + define('CORE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'modules'); |
|
24 | + } |
|
25 | + } |
|
26 | +if (!defined('VENDOR_DIR')) { |
|
27 | + define('VENDOR_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'vendor'); |
|
28 | +} |
|
29 | +if (!defined('LOG_DIR')) { |
|
30 | + define('LOG_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'logs'); |
|
31 | +} |
|
32 | +if (!defined('CACHE_DIR')) { |
|
33 | + define('CACHE_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'cache'); |
|
34 | +} |
|
35 | +if (!defined('CONFIG_DIR')) { |
|
36 | + define('CONFIG_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'config'); |
|
37 | +} |
|
38 | +if (!defined('WEB_DIR')) { |
|
39 | + define('WEB_DIR', BASE_DIR . DIRECTORY_SEPARATOR . 'html'); |
|
40 | +} |
|
19 | 41 | |
20 | 42 | defined('PSFS_BOOTSTRAP_LOADED') or define('PSFS_BOOTSTRAP_LOADED', true); |
21 | 43 |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | |
27 | 27 | /** |
28 | 28 | * Método que revisa las traducciones directorio a directorio |
29 | - * @param $path |
|
29 | + * @param string $path |
|
30 | 30 | * @param $locale |
31 | 31 | * @return array |
32 | 32 | */ |
@@ -85,7 +85,6 @@ discard block |
||
85 | 85 | * Service that creates the root paths for the modules |
86 | 86 | * @param string $module |
87 | 87 | * @param string $mod_path |
88 | - * @param boolean $isModule |
|
89 | 88 | */ |
90 | 89 | private function createModulePath($module, $mod_path) |
91 | 90 | { |
@@ -99,7 +98,7 @@ discard block |
||
99 | 98 | * Servicio que genera la estructura base |
100 | 99 | * @param string $module |
101 | 100 | * @param boolean $mod_path |
102 | - * @return boolean |
|
101 | + * @return boolean|null |
|
103 | 102 | */ |
104 | 103 | private function createModulePathTree($module, $mod_path) |
105 | 104 | { |
@@ -464,7 +463,7 @@ discard block |
||
464 | 463 | * Method that copy resources recursively |
465 | 464 | * @param string $dest |
466 | 465 | * @param boolean $force |
467 | - * @param $filename_path |
|
466 | + * @param string $filename_path |
|
468 | 467 | * @param boolean $debug |
469 | 468 | */ |
470 | 469 | public static function copyResources($dest, $force, $filename_path, $debug) |
@@ -32,24 +32,24 @@ discard block |
||
32 | 32 | */ |
33 | 33 | public static function findTranslations($path, $locale) |
34 | 34 | { |
35 | - $locale_path = realpath(BASE_DIR . DIRECTORY_SEPARATOR . 'locale'); |
|
36 | - $locale_path .= DIRECTORY_SEPARATOR . $locale . DIRECTORY_SEPARATOR . 'LC_MESSAGES' . DIRECTORY_SEPARATOR; |
|
35 | + $locale_path = realpath(BASE_DIR.DIRECTORY_SEPARATOR.'locale'); |
|
36 | + $locale_path .= DIRECTORY_SEPARATOR.$locale.DIRECTORY_SEPARATOR.'LC_MESSAGES'.DIRECTORY_SEPARATOR; |
|
37 | 37 | |
38 | 38 | $translations = array(); |
39 | 39 | if (file_exists($path)) { |
40 | 40 | $d = dir($path); |
41 | 41 | while (false !== ($dir = $d->read())) { |
42 | 42 | GeneratorHelper::createDir($locale_path); |
43 | - if (!file_exists($locale_path . 'translations.po')) { |
|
44 | - file_put_contents($locale_path . 'translations.po', ''); |
|
43 | + if (!file_exists($locale_path.'translations.po')) { |
|
44 | + file_put_contents($locale_path.'translations.po', ''); |
|
45 | 45 | } |
46 | - $inspect_path = realpath($path . DIRECTORY_SEPARATOR . $dir); |
|
47 | - $cmd_php = "export PATH=\$PATH:/opt/local/bin; xgettext " . |
|
48 | - $inspect_path . DIRECTORY_SEPARATOR . |
|
46 | + $inspect_path = realpath($path.DIRECTORY_SEPARATOR.$dir); |
|
47 | + $cmd_php = "export PATH=\$PATH:/opt/local/bin; xgettext ". |
|
48 | + $inspect_path.DIRECTORY_SEPARATOR. |
|
49 | 49 | "*.php --from-code=UTF-8 -j -L PHP --debug --force-po -o {$locale_path}translations.po"; |
50 | - if (is_dir($path . DIRECTORY_SEPARATOR . $dir) && preg_match('/^\./', $dir) == 0) { |
|
51 | - $res = _('Revisando directorio: ') . $inspect_path; |
|
52 | - $res .= _('Comando ejecutado: ') . $cmd_php; |
|
50 | + if (is_dir($path.DIRECTORY_SEPARATOR.$dir) && preg_match('/^\./', $dir) == 0) { |
|
51 | + $res = _('Revisando directorio: ').$inspect_path; |
|
52 | + $res .= _('Comando ejecutado: ').$cmd_php; |
|
53 | 53 | $res .= shell_exec($cmd_php); |
54 | 54 | usleep(10); |
55 | 55 | $translations[] = $res; |
@@ -70,7 +70,7 @@ discard block |
||
70 | 70 | */ |
71 | 71 | public function createStructureModule($module, $force = false, $type = "", $apiClass = "") |
72 | 72 | { |
73 | - $mod_path = CORE_DIR . DIRECTORY_SEPARATOR; |
|
73 | + $mod_path = CORE_DIR.DIRECTORY_SEPARATOR; |
|
74 | 74 | $module = ucfirst($module); |
75 | 75 | $this->createModulePath($module, $mod_path); |
76 | 76 | $this->createModulePathTree($module, $mod_path); |
@@ -92,7 +92,7 @@ discard block |
||
92 | 92 | // Creates the src folder |
93 | 93 | GeneratorHelper::createDir($mod_path); |
94 | 94 | // Create module path |
95 | - GeneratorHelper::createDir($mod_path . $module); |
|
95 | + GeneratorHelper::createDir($mod_path.$module); |
|
96 | 96 | } |
97 | 97 | |
98 | 98 | /** |
@@ -108,14 +108,14 @@ discard block |
||
108 | 108 | $paths = [ |
109 | 109 | "Api", "Api/base", "Config", "Controller", "Form", "Models", "Public", "Templates", "Services", "Test" |
110 | 110 | ]; |
111 | - $module_path = $mod_path . $module; |
|
111 | + $module_path = $mod_path.$module; |
|
112 | 112 | foreach ($paths as $path) { |
113 | - GeneratorHelper::createDir($module_path . DIRECTORY_SEPARATOR . $path); |
|
113 | + GeneratorHelper::createDir($module_path.DIRECTORY_SEPARATOR.$path); |
|
114 | 114 | } |
115 | 115 | //Creamos las carpetas de los assets |
116 | 116 | $htmlPaths = array("css", "js", "img", "media", "font"); |
117 | 117 | foreach ($htmlPaths as $path) { |
118 | - GeneratorHelper::createDir($module_path . DIRECTORY_SEPARATOR . "Public" . DIRECTORY_SEPARATOR . $path); |
|
118 | + GeneratorHelper::createDir($module_path.DIRECTORY_SEPARATOR."Public".DIRECTORY_SEPARATOR.$path); |
|
119 | 119 | } |
120 | 120 | } |
121 | 121 | |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | */ |
129 | 129 | private function createModuleBaseFiles($module, $mod_path, $force = false, $controllerType = '') |
130 | 130 | { |
131 | - $module_path = $mod_path . $module; |
|
131 | + $module_path = $mod_path.$module; |
|
132 | 132 | $this->generateControllerTemplate($module, $module_path, $force, $controllerType); |
133 | 133 | $this->generateServiceTemplate($module, $module_path, $force); |
134 | 134 | $this->genereateAutoloaderTemplate($module, $module_path, $force); |
@@ -146,28 +146,28 @@ discard block |
||
146 | 146 | */ |
147 | 147 | private function createModuleModels($module, $path) |
148 | 148 | { |
149 | - $module_path = $path . $module; |
|
150 | - $module_path = str_replace(CORE_DIR . DIRECTORY_SEPARATOR, '', $module_path); |
|
149 | + $module_path = $path.$module; |
|
150 | + $module_path = str_replace(CORE_DIR.DIRECTORY_SEPARATOR, '', $module_path); |
|
151 | 151 | //Generamos las clases de propel y la configuración |
152 | - $exec = "export PATH=\$PATH:/opt/local/bin; " . BASE_DIR . DIRECTORY_SEPARATOR . |
|
153 | - "vendor" . DIRECTORY_SEPARATOR . "bin" . DIRECTORY_SEPARATOR . "propel "; |
|
154 | - $schemaOpt = " --schema-dir=" . CORE_DIR . DIRECTORY_SEPARATOR . $module_path . |
|
155 | - DIRECTORY_SEPARATOR . "Config"; |
|
156 | - $opt = " --config-dir=" . CORE_DIR . DIRECTORY_SEPARATOR . $module_path . DIRECTORY_SEPARATOR . |
|
157 | - "Config --output-dir=" . CORE_DIR . " --verbose"; |
|
158 | - $this->log->infoLog("[GENERATOR] Ejecutamos propel:\n" . $exec . "build" . $opt . $schemaOpt); |
|
159 | - $ret = shell_exec($exec . "build" . $opt . $schemaOpt); |
|
152 | + $exec = "export PATH=\$PATH:/opt/local/bin; ".BASE_DIR.DIRECTORY_SEPARATOR. |
|
153 | + "vendor".DIRECTORY_SEPARATOR."bin".DIRECTORY_SEPARATOR."propel "; |
|
154 | + $schemaOpt = " --schema-dir=".CORE_DIR.DIRECTORY_SEPARATOR.$module_path. |
|
155 | + DIRECTORY_SEPARATOR."Config"; |
|
156 | + $opt = " --config-dir=".CORE_DIR.DIRECTORY_SEPARATOR.$module_path.DIRECTORY_SEPARATOR. |
|
157 | + "Config --output-dir=".CORE_DIR." --verbose"; |
|
158 | + $this->log->infoLog("[GENERATOR] Ejecutamos propel:\n".$exec."build".$opt.$schemaOpt); |
|
159 | + $ret = shell_exec($exec."build".$opt.$schemaOpt); |
|
160 | 160 | |
161 | 161 | $this->log->infoLog("[GENERATOR] Generamos clases invocando a propel:\n $ret"); |
162 | - $ret = shell_exec($exec . "sql:build" . $opt . " --output-dir=" . CORE_DIR . DIRECTORY_SEPARATOR . |
|
163 | - $module_path . DIRECTORY_SEPARATOR . "Config" . $schemaOpt); |
|
162 | + $ret = shell_exec($exec."sql:build".$opt." --output-dir=".CORE_DIR.DIRECTORY_SEPARATOR. |
|
163 | + $module_path.DIRECTORY_SEPARATOR."Config".$schemaOpt); |
|
164 | 164 | $this->log->infoLog("[GENERATOR] Generamos sql invocando a propel:\n $ret"); |
165 | 165 | |
166 | 166 | $configTemplate = $this->tpl->dump("generator/config.propel.template.twig", array( |
167 | 167 | "module" => $module, |
168 | 168 | )); |
169 | - $this->writeTemplateToFile($configTemplate, CORE_DIR . DIRECTORY_SEPARATOR . $module_path . DIRECTORY_SEPARATOR . "Config" . |
|
170 | - DIRECTORY_SEPARATOR . "config.php", true); |
|
169 | + $this->writeTemplateToFile($configTemplate, CORE_DIR.DIRECTORY_SEPARATOR.$module_path.DIRECTORY_SEPARATOR."Config". |
|
170 | + DIRECTORY_SEPARATOR."config.php", true); |
|
171 | 171 | $this->log->infoLog("Generado config genérico para propel:\n $ret"); |
172 | 172 | } |
173 | 173 | |
@@ -188,28 +188,28 @@ discard block |
||
188 | 188 | "namespace" => preg_replace('/(\\\|\/)/', '\\', $module), |
189 | 189 | "url" => preg_replace('/(\\\|\/)/', '/', $module), |
190 | 190 | "class" => $class, |
191 | - "controllerType" => $class . "Base", |
|
191 | + "controllerType" => $class."Base", |
|
192 | 192 | "is_base" => false |
193 | 193 | )); |
194 | - $controller = $this->writeTemplateToFile($controllerBody, $mod_path . DIRECTORY_SEPARATOR . "Controller" . |
|
195 | - DIRECTORY_SEPARATOR . "{$class}Controller.php", $force); |
|
194 | + $controller = $this->writeTemplateToFile($controllerBody, $mod_path.DIRECTORY_SEPARATOR."Controller". |
|
195 | + DIRECTORY_SEPARATOR."{$class}Controller.php", $force); |
|
196 | 196 | |
197 | 197 | $controllerBody = $this->tpl->dump("generator/controller.template.twig", array( |
198 | 198 | "module" => $module, |
199 | 199 | "namespace" => preg_replace('/(\\\|\/)/', '\\', $module), |
200 | 200 | "url" => preg_replace('/(\\\|\/)/', '/', $module), |
201 | - "class" => $class . "Base", |
|
201 | + "class" => $class."Base", |
|
202 | 202 | "service" => $class, |
203 | 203 | "controllerType" => $controllerType, |
204 | 204 | "is_base" => true, |
205 | 205 | "domain" => $class, |
206 | 206 | )); |
207 | - $controllerBase = $this->writeTemplateToFile($controllerBody, $mod_path . DIRECTORY_SEPARATOR . "Controller" . |
|
208 | - DIRECTORY_SEPARATOR . "base" . DIRECTORY_SEPARATOR . "{$class}BaseController.php", true); |
|
207 | + $controllerBase = $this->writeTemplateToFile($controllerBody, $mod_path.DIRECTORY_SEPARATOR."Controller". |
|
208 | + DIRECTORY_SEPARATOR."base".DIRECTORY_SEPARATOR."{$class}BaseController.php", true); |
|
209 | 209 | |
210 | - $filename = $mod_path . DIRECTORY_SEPARATOR . "Test" . DIRECTORY_SEPARATOR . "{$class}Test.php"; |
|
210 | + $filename = $mod_path.DIRECTORY_SEPARATOR."Test".DIRECTORY_SEPARATOR."{$class}Test.php"; |
|
211 | 211 | $test = true; |
212 | - if(!file_exists($filename)) { |
|
212 | + if (!file_exists($filename)) { |
|
213 | 213 | $testTemplate = $this->tpl->dump("generator/testCase.template.twig", array( |
214 | 214 | "module" => $module, |
215 | 215 | "namespace" => preg_replace('/(\\\|\/)/', '\\', $module), |
@@ -230,8 +230,8 @@ discard block |
||
230 | 230 | private function generateBaseApiTemplate($module, $mod_path, $force = false, $apiClass = "") |
231 | 231 | { |
232 | 232 | $created = true; |
233 | - $modelPath = $mod_path . $module . DIRECTORY_SEPARATOR . 'Models'; |
|
234 | - $api_path = $mod_path . $module . DIRECTORY_SEPARATOR . 'Api'; |
|
233 | + $modelPath = $mod_path.$module.DIRECTORY_SEPARATOR.'Models'; |
|
234 | + $api_path = $mod_path.$module.DIRECTORY_SEPARATOR.'Api'; |
|
235 | 235 | if (file_exists($modelPath)) { |
236 | 236 | $dir = dir($modelPath); |
237 | 237 | while ($file = $dir->read()) { |
@@ -259,7 +259,7 @@ discard block |
||
259 | 259 | //Generamos el fichero de configuración |
260 | 260 | $this->log->infoLog("Generamos fichero vacío de configuración"); |
261 | 261 | return $this->writeTemplateToFile("<?php\n\t", |
262 | - $mod_path . DIRECTORY_SEPARATOR . "Config" . DIRECTORY_SEPARATOR . "config.php", |
|
262 | + $mod_path.DIRECTORY_SEPARATOR."Config".DIRECTORY_SEPARATOR."config.php", |
|
263 | 263 | $force); |
264 | 264 | } |
265 | 265 | |
@@ -274,10 +274,10 @@ discard block |
||
274 | 274 | //Generamos el fichero de configuración |
275 | 275 | $this->log->infoLog("Generamos ficheros para assets base"); |
276 | 276 | $css = $this->writeTemplateToFile("/* CSS3 STYLES */\n\n", |
277 | - $mod_path . DIRECTORY_SEPARATOR . "Public" . DIRECTORY_SEPARATOR . "css" . DIRECTORY_SEPARATOR . "styles.css", |
|
277 | + $mod_path.DIRECTORY_SEPARATOR."Public".DIRECTORY_SEPARATOR."css".DIRECTORY_SEPARATOR."styles.css", |
|
278 | 278 | $force); |
279 | 279 | $js = $this->writeTemplateToFile("/* APP MODULE JS */\n\n(function() {\n\t'use strict';\n})();", |
280 | - $mod_path . DIRECTORY_SEPARATOR . "Public" . DIRECTORY_SEPARATOR . "js" . DIRECTORY_SEPARATOR . "app.js", |
|
280 | + $mod_path.DIRECTORY_SEPARATOR."Public".DIRECTORY_SEPARATOR."js".DIRECTORY_SEPARATOR."app.js", |
|
281 | 281 | $force); |
282 | 282 | return ($css && $js); |
283 | 283 | } |
@@ -299,7 +299,7 @@ discard block |
||
299 | 299 | "class" => $class, |
300 | 300 | )); |
301 | 301 | return $this->writeTemplateToFile($controller, |
302 | - $mod_path . DIRECTORY_SEPARATOR . "Services" . DIRECTORY_SEPARATOR . "{$class}Service.php", |
|
302 | + $mod_path.DIRECTORY_SEPARATOR."Services".DIRECTORY_SEPARATOR."{$class}Service.php", |
|
303 | 303 | $force); |
304 | 304 | } |
305 | 305 | |
@@ -318,13 +318,13 @@ discard block |
||
318 | 318 | "autoloader" => preg_replace('/(\\\|\/)/', '_', $module), |
319 | 319 | "regex" => preg_replace('/(\\\|\/)/m', '\\\\\\\\\\\\', $module), |
320 | 320 | )); |
321 | - $autoload = $this->writeTemplateToFile($autoloader, $mod_path . DIRECTORY_SEPARATOR . "autoload.php", $force); |
|
321 | + $autoload = $this->writeTemplateToFile($autoloader, $mod_path.DIRECTORY_SEPARATOR."autoload.php", $force); |
|
322 | 322 | |
323 | 323 | $this->log->infoLog("Generamos el phpunit"); |
324 | 324 | $phpUnitTemplate = $this->tpl->dump("generator/phpunit.template.twig", array( |
325 | 325 | "module" => $module, |
326 | 326 | )); |
327 | - $phpunit = $this->writeTemplateToFile($phpUnitTemplate, $mod_path . DIRECTORY_SEPARATOR . "phpunit.xml.dist", $force); |
|
327 | + $phpunit = $this->writeTemplateToFile($phpUnitTemplate, $mod_path.DIRECTORY_SEPARATOR."phpunit.xml.dist", $force); |
|
328 | 328 | return $autoload && $phpunit; |
329 | 329 | } |
330 | 330 | |
@@ -345,7 +345,7 @@ discard block |
||
345 | 345 | "db" => $this->config->get("db_name"), |
346 | 346 | )); |
347 | 347 | return $this->writeTemplateToFile($schema, |
348 | - $mod_path . DIRECTORY_SEPARATOR . "Config" . DIRECTORY_SEPARATOR . "schema.xml", |
|
348 | + $mod_path.DIRECTORY_SEPARATOR."Config".DIRECTORY_SEPARATOR."schema.xml", |
|
349 | 349 | $force); |
350 | 350 | } |
351 | 351 | |
@@ -368,7 +368,7 @@ discard block |
||
368 | 368 | "namespace" => preg_replace('/(\\\|\/)/', '', $module), |
369 | 369 | )); |
370 | 370 | return $this->writeTemplateToFile($build_properties, |
371 | - $mod_path . DIRECTORY_SEPARATOR . "Config" . DIRECTORY_SEPARATOR . "propel.yml", |
|
371 | + $mod_path.DIRECTORY_SEPARATOR."Config".DIRECTORY_SEPARATOR."propel.yml", |
|
372 | 372 | $force); |
373 | 373 | } |
374 | 374 | |
@@ -386,7 +386,7 @@ discard block |
||
386 | 386 | "module" => $module, |
387 | 387 | )); |
388 | 388 | return $this->writeTemplateToFile($index, |
389 | - $mod_path . DIRECTORY_SEPARATOR . "Templates" . DIRECTORY_SEPARATOR . "index.html.twig", |
|
389 | + $mod_path.DIRECTORY_SEPARATOR."Templates".DIRECTORY_SEPARATOR."index.html.twig", |
|
390 | 390 | $force); |
391 | 391 | } |
392 | 392 | |
@@ -404,11 +404,11 @@ discard block |
||
404 | 404 | try { |
405 | 405 | $this->cache->storeData($filename, $fileContent, Cache::TEXT, true); |
406 | 406 | $created = true; |
407 | - } catch (\Exception $e) { |
|
407 | + }catch (\Exception $e) { |
|
408 | 408 | $this->log->errorLog($e->getMessage()); |
409 | 409 | } |
410 | - } else { |
|
411 | - $this->log->errorLog($filename . _(' not exists or cant write')); |
|
410 | + }else { |
|
411 | + $this->log->errorLog($filename._(' not exists or cant write')); |
|
412 | 412 | } |
413 | 413 | return $created; |
414 | 414 | } |
@@ -437,7 +437,7 @@ discard block |
||
437 | 437 | )); |
438 | 438 | |
439 | 439 | return $this->writeTemplateToFile($controller, |
440 | - $mod_path . DIRECTORY_SEPARATOR . 'base' . DIRECTORY_SEPARATOR . "{$api}BaseApi.php", true); |
|
440 | + $mod_path.DIRECTORY_SEPARATOR.'base'.DIRECTORY_SEPARATOR."{$api}BaseApi.php", true); |
|
441 | 441 | } |
442 | 442 | |
443 | 443 | /** |
@@ -460,7 +460,7 @@ discard block |
||
460 | 460 | "class" => $class, |
461 | 461 | )); |
462 | 462 | |
463 | - return $this->writeTemplateToFile($controller, $mod_path . DIRECTORY_SEPARATOR . "{$api}.php", $force); |
|
463 | + return $this->writeTemplateToFile($controller, $mod_path.DIRECTORY_SEPARATOR."{$api}.php", $force); |
|
464 | 464 | } |
465 | 465 | |
466 | 466 | /** |
@@ -474,12 +474,12 @@ discard block |
||
474 | 474 | { |
475 | 475 | if (file_exists($filename_path)) { |
476 | 476 | $destfolder = basename($filename_path); |
477 | - if (!file_exists(WEB_DIR . $dest . DIRECTORY_SEPARATOR . $destfolder) || $debug || $force) { |
|
477 | + if (!file_exists(WEB_DIR.$dest.DIRECTORY_SEPARATOR.$destfolder) || $debug || $force) { |
|
478 | 478 | if (is_dir($filename_path)) { |
479 | - self::copyr($filename_path, WEB_DIR . $dest . DIRECTORY_SEPARATOR . $destfolder); |
|
480 | - } else { |
|
481 | - if (@copy($filename_path, WEB_DIR . $dest . DIRECTORY_SEPARATOR . $destfolder) === FALSE) { |
|
482 | - throw new ConfigException("Can't copy " . $filename_path . " to " . WEB_DIR . $dest . DIRECTORY_SEPARATOR . $destfolder); |
|
479 | + self::copyr($filename_path, WEB_DIR.$dest.DIRECTORY_SEPARATOR.$destfolder); |
|
480 | + }else { |
|
481 | + if (@copy($filename_path, WEB_DIR.$dest.DIRECTORY_SEPARATOR.$destfolder) === FALSE) { |
|
482 | + throw new ConfigException("Can't copy ".$filename_path." to ".WEB_DIR.$dest.DIRECTORY_SEPARATOR.$destfolder); |
|
483 | 483 | } |
484 | 484 | } |
485 | 485 | } |
@@ -498,10 +498,10 @@ discard block |
||
498 | 498 | GeneratorHelper::createDir($dst); |
499 | 499 | while (false !== ($file = readdir($dir))) { |
500 | 500 | if (($file != '.') && ($file != '..')) { |
501 | - if (is_dir($src . '/' . $file)) { |
|
502 | - self::copyr($src . '/' . $file, $dst . '/' . $file); |
|
503 | - } elseif (@copy($src . '/' . $file, $dst . '/' . $file) === false) { |
|
504 | - throw new ConfigException("Can't copy " . $src . " to " . $dst); |
|
501 | + if (is_dir($src.'/'.$file)) { |
|
502 | + self::copyr($src.'/'.$file, $dst.'/'.$file); |
|
503 | + } elseif (@copy($src.'/'.$file, $dst.'/'.$file) === false) { |
|
504 | + throw new ConfigException("Can't copy ".$src." to ".$dst); |
|
505 | 505 | } |
506 | 506 | } |
507 | 507 | } |
@@ -34,7 +34,7 @@ |
||
34 | 34 | "Auth" => _("Requiere autenticación de usuario"), |
35 | 35 | "AuthAdmin" => _("Requiere autenticación de administrador"), |
36 | 36 | ); |
37 | - if(Config::getParam('psfs.auth')) { |
|
37 | + if (Config::getParam('psfs.auth')) { |
|
38 | 38 | $controllerTypes['SessionAuthApi'] = _('Requiere autenticación usando PSFS AUTH'); |
39 | 39 | } |
40 | 40 | $this->add('module', array( |
@@ -31,7 +31,7 @@ discard block |
||
31 | 31 | { |
32 | 32 | $routes = []; |
33 | 33 | foreach ($systemRoutes as $route => $params) { |
34 | - if(isset($params['http']) && 'GET' === $params['http'] && preg_match('/^\/admin(\/|$)/', $params['default'])) { |
|
34 | + if (isset($params['http']) && 'GET' === $params['http'] && preg_match('/^\/admin(\/|$)/', $params['default'])) { |
|
35 | 35 | $module = strtoupper($params['module']); |
36 | 36 | $mode = $params["visible"] ? 'visible' : 'hidden'; |
37 | 37 | $routes[$module][$mode][] = [ |
@@ -41,11 +41,11 @@ discard block |
||
41 | 41 | ]; |
42 | 42 | } |
43 | 43 | } |
44 | - foreach($routes as $module => &$route) { |
|
45 | - if(array_key_exists('visible', $route)) { |
|
44 | + foreach ($routes as $module => &$route) { |
|
45 | + if (array_key_exists('visible', $route)) { |
|
46 | 46 | uasort($route["visible"], '\PSFS\base\types\helpers\AdminHelper::sortByLabel'); |
47 | 47 | } |
48 | - if(array_key_exists('hidden', $route)) { |
|
48 | + if (array_key_exists('hidden', $route)) { |
|
49 | 49 | uasort($route["hidden"], '\PSFS\base\types\helpers\AdminHelper::sortByLabel'); |
50 | 50 | } |
51 | 51 | } |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | */ |
31 | 31 | public function generateModule() |
32 | 32 | { |
33 | - Logger::log("Arranque generador de módulos al solicitar " . $this->getRequest()->getRequestUri()); |
|
33 | + Logger::log("Arranque generador de módulos al solicitar ".$this->getRequest()->getRequestUri()); |
|
34 | 34 | /* @var $form \PSFS\base\config\ConfigForm */ |
35 | 35 | $form = new ModuleForm(); |
36 | 36 | $form->build(); |
@@ -61,8 +61,8 @@ discard block |
||
61 | 61 | $this->gen->createStructureModule($module, false, $type, $apiClass); |
62 | 62 | Security::getInstance()->setFlash("callback_message", str_replace("%s", $module, _("Módulo %s generado correctamente"))); |
63 | 63 | Security::getInstance()->setFlash("callback_route", $this->getRoute("admin-module", true)); |
64 | - } catch (\Exception $e) { |
|
65 | - Logger::getInstance()->infoLog($e->getMessage() . " [" . $e->getFile() . ":" . $e->getLine() . "]"); |
|
64 | + }catch (\Exception $e) { |
|
65 | + Logger::getInstance()->infoLog($e->getMessage()." [".$e->getFile().":".$e->getLine()."]"); |
|
66 | 66 | Security::getInstance()->setFlash("callback_message", $e->getMessage()); |
67 | 67 | } |
68 | 68 | } |
@@ -19,10 +19,10 @@ discard block |
||
19 | 19 | $objects = scandir($dir); |
20 | 20 | foreach ($objects as $object) { |
21 | 21 | if ($object != "." && $object != "..") { |
22 | - if (filetype($dir . "/" . $object) == "dir") { |
|
23 | - self::deleteDir($dir . "/" . $object); |
|
24 | - } else { |
|
25 | - unlink($dir . "/" . $object); |
|
22 | + if (filetype($dir."/".$object) == "dir") { |
|
23 | + self::deleteDir($dir."/".$object); |
|
24 | + }else { |
|
25 | + unlink($dir."/".$object); |
|
26 | 26 | } |
27 | 27 | } |
28 | 28 | } |
@@ -38,10 +38,10 @@ discard block |
||
38 | 38 | { |
39 | 39 | $rootDirs = array("css", "js", "media", "font"); |
40 | 40 | foreach ($rootDirs as $dir) { |
41 | - if (file_exists(WEB_DIR . DIRECTORY_SEPARATOR . $dir)) { |
|
41 | + if (file_exists(WEB_DIR.DIRECTORY_SEPARATOR.$dir)) { |
|
42 | 42 | try { |
43 | - self::deleteDir(WEB_DIR . DIRECTORY_SEPARATOR . $dir); |
|
44 | - } catch (\Exception $e) { |
|
43 | + self::deleteDir(WEB_DIR.DIRECTORY_SEPARATOR.$dir); |
|
44 | + }catch (\Exception $e) { |
|
45 | 45 | Logger::log($e->getMessage()); |
46 | 46 | } |
47 | 47 | } |
@@ -57,12 +57,12 @@ discard block |
||
57 | 57 | { |
58 | 58 | try { |
59 | 59 | if (!is_dir($dir) && @mkdir($dir, 0775, true) === false) { |
60 | - throw new \Exception(_('Can\'t create directory ') . $dir); |
|
60 | + throw new \Exception(_('Can\'t create directory ').$dir); |
|
61 | 61 | } |
62 | - } catch (\Exception $e) { |
|
62 | + }catch (\Exception $e) { |
|
63 | 63 | Logger::log($e->getMessage(), LOG_WARNING); |
64 | 64 | if (!file_exists(dirname($dir))) { |
65 | - throw new GeneratorException($e->getMessage() . $dir); |
|
65 | + throw new GeneratorException($e->getMessage().$dir); |
|
66 | 66 | } |
67 | 67 | } |
68 | 68 | } |
@@ -73,7 +73,7 @@ discard block |
||
73 | 73 | */ |
74 | 74 | public static function getTemplatePath() |
75 | 75 | { |
76 | - $path = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR; |
|
76 | + $path = __DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR; |
|
77 | 77 | return realpath($path); |
78 | 78 | } |
79 | 79 | |
@@ -91,15 +91,15 @@ discard block |
||
91 | 91 | * @throws GeneratorException |
92 | 92 | */ |
93 | 93 | public static function checkCustomNamespaceApi($namespace) { |
94 | - if(!empty($namespace)) { |
|
95 | - if(class_exists($namespace)) { |
|
94 | + if (!empty($namespace)) { |
|
95 | + if (class_exists($namespace)) { |
|
96 | 96 | $reflector = new \ReflectionClass($namespace); |
97 | - if(!$reflector->isSubclassOf(\PSFS\base\types\Api::class)) { |
|
97 | + if (!$reflector->isSubclassOf(\PSFS\base\types\Api::class)) { |
|
98 | 98 | throw new GeneratorException(_('La clase definida debe extender de PSFS\\\base\\\types\\\Api'), 501); |
99 | - } elseif(!$reflector->isAbstract()) { |
|
99 | + } elseif (!$reflector->isAbstract()) { |
|
100 | 100 | throw new GeneratorException(_('La clase definida debe ser abstracta'), 501); |
101 | 101 | } |
102 | - } else { |
|
102 | + }else { |
|
103 | 103 | throw new GeneratorException(_('La clase definida para extender la API no existe'), 501); |
104 | 104 | } |
105 | 105 | } |
@@ -146,7 +146,7 @@ discard block |
||
146 | 146 | |
147 | 147 | /** |
148 | 148 | * Método que guarda en fichero los datos pasados |
149 | - * @param $path |
|
149 | + * @param string $path |
|
150 | 150 | * @param $data |
151 | 151 | * @param int $transform |
152 | 152 | * @param boolean $absolute |
@@ -201,7 +201,7 @@ discard block |
||
201 | 201 | |
202 | 202 | /** |
203 | 203 | * Método estático que revisa si se necesita cachear la respuesta de un servicio o no |
204 | - * @return integer|boolean |
|
204 | + * @return integer |
|
205 | 205 | */ |
206 | 206 | public static function needCache() |
207 | 207 | { |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | { |
45 | 45 | GeneratorHelper::createDir(dirname($path)); |
46 | 46 | if (false === file_put_contents($path, $data)) { |
47 | - throw new ConfigException(_('No se tienen los permisos suficientes para escribir en el fichero ') . $path); |
|
47 | + throw new ConfigException(_('No se tienen los permisos suficientes para escribir en el fichero ').$path); |
|
48 | 48 | } |
49 | 49 | } |
50 | 50 | |
@@ -58,7 +58,7 @@ discard block |
||
58 | 58 | public function getDataFromFile($path, $transform = Cache::TEXT, $absolute = false) |
59 | 59 | { |
60 | 60 | $data = null; |
61 | - $absolutePath = ($absolute) ? $path : CACHE_DIR . DIRECTORY_SEPARATOR . $path; |
|
61 | + $absolutePath = ($absolute) ? $path : CACHE_DIR.DIRECTORY_SEPARATOR.$path; |
|
62 | 62 | if (file_exists($absolutePath)) { |
63 | 63 | $data = file_get_contents($absolutePath); |
64 | 64 | } |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | */ |
75 | 75 | private function hasExpiredCache($path, $expires = 300, $absolute = false) |
76 | 76 | { |
77 | - $absolutePath = ($absolute) ? $path : CACHE_DIR . DIRECTORY_SEPARATOR . $path; |
|
77 | + $absolutePath = ($absolute) ? $path : CACHE_DIR.DIRECTORY_SEPARATOR.$path; |
|
78 | 78 | $lasModificationDate = filemtime($absolutePath); |
79 | 79 | return ($lasModificationDate + $expires <= time()); |
80 | 80 | } |
@@ -140,7 +140,7 @@ discard block |
||
140 | 140 | public function storeData($path, $data, $transform = Cache::TEXT, $absolute = false, $expires = 600) |
141 | 141 | { |
142 | 142 | $data = Cache::transformData($data, $transform); |
143 | - $absolutePath = ($absolute) ? $path : CACHE_DIR . DIRECTORY_SEPARATOR . $path; |
|
143 | + $absolutePath = ($absolute) ? $path : CACHE_DIR.DIRECTORY_SEPARATOR.$path; |
|
144 | 144 | $this->saveTextToFile($data, $absolutePath); |
145 | 145 | } |
146 | 146 | |
@@ -155,11 +155,11 @@ discard block |
||
155 | 155 | public function readFromCache($path, $expires = 300, callable $function, $transform = Cache::TEXT) |
156 | 156 | { |
157 | 157 | $data = null; |
158 | - if (file_exists(CACHE_DIR . DIRECTORY_SEPARATOR . $path)) { |
|
158 | + if (file_exists(CACHE_DIR.DIRECTORY_SEPARATOR.$path)) { |
|
159 | 159 | if (null !== $function && $this->hasExpiredCache($path, $expires)) { |
160 | 160 | $data = call_user_func($function); |
161 | 161 | $this->storeData($path, $data, $transform, false, $expires); |
162 | - } else { |
|
162 | + }else { |
|
163 | 163 | $data = $this->getDataFromFile($path, $transform); |
164 | 164 | } |
165 | 165 | } |
@@ -201,9 +201,9 @@ discard block |
||
201 | 201 | $action = Security::getInstance()->getSessionKey("__CACHE__"); |
202 | 202 | if (null !== $action && $action["cache"] > 0) { |
203 | 203 | $class = array_pop(explode('\\', $action['class'])); |
204 | - $filename = sha1($action["http"] . " " . $action["slug"]); |
|
205 | - $subPath = substr($filename, 0, 2) . DIRECTORY_SEPARATOR . substr($filename, 2, 2); |
|
206 | - $hashPath = $action['module'] . DIRECTORY_SEPARATOR . $class . DIRECTORY_SEPARATOR . $action['method'] . DIRECTORY_SEPARATOR . $subPath . DIRECTORY_SEPARATOR; |
|
204 | + $filename = sha1($action["http"]." ".$action["slug"]); |
|
205 | + $subPath = substr($filename, 0, 2).DIRECTORY_SEPARATOR.substr($filename, 2, 2); |
|
206 | + $hashPath = $action['module'].DIRECTORY_SEPARATOR.$class.DIRECTORY_SEPARATOR.$action['method'].DIRECTORY_SEPARATOR.$subPath.DIRECTORY_SEPARATOR; |
|
207 | 207 | } |
208 | 208 | return [$hashPath, $filename]; |
209 | 209 | } |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | $translations = array(); |
25 | 25 | if (file_exists($absoluteTranslationFileName)) { |
26 | 26 | @include($absoluteTranslationFileName); |
27 | - } else { |
|
27 | + }else { |
|
28 | 28 | Cache::getInstance()->storeData($absoluteTranslationFileName, "<?php \$translations = array();\n", Cache::TEXT, TRUE); |
29 | 29 | } |
30 | 30 | |
@@ -36,13 +36,13 @@ discard block |
||
36 | 36 | */ |
37 | 37 | public static function setLocale() { |
38 | 38 | $locale = Config::getParam("default_language", 'es_ES'); |
39 | - Logger::log('Set locale to project [' . $locale . ']'); |
|
39 | + Logger::log('Set locale to project ['.$locale.']'); |
|
40 | 40 | // Load translations |
41 | - putenv("LC_ALL=" . $locale); |
|
41 | + putenv("LC_ALL=".$locale); |
|
42 | 42 | setlocale(LC_ALL, $locale); |
43 | 43 | // Load the locale path |
44 | - $locale_path = BASE_DIR . DIRECTORY_SEPARATOR . 'locale'; |
|
45 | - Logger::log('Set locale dir ' . $locale_path); |
|
44 | + $locale_path = BASE_DIR.DIRECTORY_SEPARATOR.'locale'; |
|
45 | + Logger::log('Set locale dir '.$locale_path); |
|
46 | 46 | GeneratorHelper::createDir($locale_path); |
47 | 47 | bindtextdomain('translations', $locale_path); |
48 | 48 | textdomain('translations'); |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | */ |
75 | 75 | protected function init() |
76 | 76 | { |
77 | - if (file_exists(CONFIG_DIR . DIRECTORY_SEPARATOR . self::CONFIG_FILE)) { |
|
77 | + if (file_exists(CONFIG_DIR.DIRECTORY_SEPARATOR.self::CONFIG_FILE)) { |
|
78 | 78 | $this->loadConfigData(); |
79 | 79 | } |
80 | 80 | return $this; |
@@ -182,10 +182,10 @@ discard block |
||
182 | 182 | $final_data = array_filter($final_data, function($key, $value) { |
183 | 183 | return in_array($key, Config::$required) || !empty($value); |
184 | 184 | }, ARRAY_FILTER_USE_BOTH); |
185 | - $saved = (false !== file_put_contents(CONFIG_DIR . DIRECTORY_SEPARATOR . self::CONFIG_FILE, json_encode($final_data, JSON_PRETTY_PRINT))); |
|
185 | + $saved = (false !== file_put_contents(CONFIG_DIR.DIRECTORY_SEPARATOR.self::CONFIG_FILE, json_encode($final_data, JSON_PRETTY_PRINT))); |
|
186 | 186 | Config::getInstance()->loadConfigData(); |
187 | 187 | $saved = true; |
188 | - } catch (ConfigException $e) { |
|
188 | + }catch (ConfigException $e) { |
|
189 | 189 | Logger::log($e->getMessage(), LOG_ERR); |
190 | 190 | } |
191 | 191 | return $saved; |
@@ -217,7 +217,7 @@ discard block |
||
217 | 217 | */ |
218 | 218 | public function loadConfigData() |
219 | 219 | { |
220 | - $this->config = json_decode(file_get_contents(CONFIG_DIR . DIRECTORY_SEPARATOR . self::CONFIG_FILE), true) ?: []; |
|
220 | + $this->config = json_decode(file_get_contents(CONFIG_DIR.DIRECTORY_SEPARATOR.self::CONFIG_FILE), true) ?: []; |
|
221 | 221 | $this->debug = (array_key_exists('debug', $this->config)) ? (bool)$this->config['debug'] : FALSE; |
222 | 222 | } |
223 | 223 |
@@ -232,7 +232,7 @@ |
||
232 | 232 | /** |
233 | 233 | * Static wrapper for extracting params |
234 | 234 | * @param string $key |
235 | - * @param mixed|null $defaultValue |
|
235 | + * @param string|boolean $defaultValue |
|
236 | 236 | * @return mixed|null |
237 | 237 | */ |
238 | 238 | public static function getParam($key, $defaultValue = null) |