@@ -222,7 +222,7 @@ |
||
| 222 | 222 | * @param string $sClassName The class name of the callable object |
| 223 | 223 | * @param array $aOptions The callable object options |
| 224 | 224 | * |
| 225 | - * @return object |
|
| 225 | + * @return null|CallableObject |
|
| 226 | 226 | */ |
| 227 | 227 | protected function _getCallableObject($sClassName, array $aOptions) |
| 228 | 228 | { |
@@ -15,7 +15,6 @@ |
||
| 15 | 15 | namespace Jaxon\Request\Support; |
| 16 | 16 | |
| 17 | 17 | use Jaxon\Request\Request; |
| 18 | - |
|
| 19 | 18 | use RecursiveDirectoryIterator; |
| 20 | 19 | use RecursiveIteratorIterator; |
| 21 | 20 | // use RegexIterator; |
@@ -93,19 +93,19 @@ discard block |
||
| 93 | 93 | private function getClassOptions($sClassName, array $aDirectoryOptions, array $aDefaultOptions = []) |
| 94 | 94 | { |
| 95 | 95 | $aOptions = $aDefaultOptions; |
| 96 | - if(key_exists('separator', $aDirectoryOptions)) |
|
| 96 | + if (key_exists('separator', $aDirectoryOptions)) |
|
| 97 | 97 | { |
| 98 | 98 | $aOptions['separator'] = $aDirectoryOptions['separator']; |
| 99 | 99 | } |
| 100 | - if(key_exists('protected', $aDirectoryOptions)) |
|
| 100 | + if (key_exists('protected', $aDirectoryOptions)) |
|
| 101 | 101 | { |
| 102 | 102 | $aOptions['protected'] = $aDirectoryOptions['protected']; |
| 103 | 103 | } |
| 104 | - if(key_exists('*', $aDirectoryOptions)) |
|
| 104 | + if (key_exists('*', $aDirectoryOptions)) |
|
| 105 | 105 | { |
| 106 | 106 | $aOptions = array_merge($aOptions, $aDirectoryOptions['*']); |
| 107 | 107 | } |
| 108 | - if(key_exists($sClassName, $aDirectoryOptions)) |
|
| 108 | + if (key_exists($sClassName, $aDirectoryOptions)) |
|
| 109 | 109 | { |
| 110 | 110 | $aOptions = array_merge($aOptions, $aDirectoryOptions[$sClassName]); |
| 111 | 111 | } |
@@ -125,17 +125,17 @@ discard block |
||
| 125 | 125 | $itDir = new RecursiveDirectoryIterator($sDirectory); |
| 126 | 126 | $itFile = new RecursiveIteratorIterator($itDir); |
| 127 | 127 | // Iterate on dir content |
| 128 | - foreach($itFile as $xFile) |
|
| 128 | + foreach ($itFile as $xFile) |
|
| 129 | 129 | { |
| 130 | 130 | // skip everything except PHP files |
| 131 | - if(!$xFile->isFile() || $xFile->getExtension() != 'php') |
|
| 131 | + if (!$xFile->isFile() || $xFile->getExtension() != 'php') |
|
| 132 | 132 | { |
| 133 | 133 | continue; |
| 134 | 134 | } |
| 135 | 135 | |
| 136 | 136 | $aClassOptions = []; |
| 137 | 137 | // No more classmap autoloading. The file will be included when needed. |
| 138 | - if(($aOptions['autoload'])) |
|
| 138 | + if (($aOptions['autoload'])) |
|
| 139 | 139 | { |
| 140 | 140 | $aClassOptions['include'] = $xFile->getPathname(); |
| 141 | 141 | } |
@@ -156,7 +156,7 @@ discard block |
||
| 156 | 156 | public function addNamespace($sNamespace, array $aOptions) |
| 157 | 157 | { |
| 158 | 158 | // Separator default value |
| 159 | - if(!key_exists('separator', $aOptions)) |
|
| 159 | + if (!key_exists('separator', $aOptions)) |
|
| 160 | 160 | { |
| 161 | 161 | $aOptions['separator'] = '.'; |
| 162 | 162 | } |
@@ -172,7 +172,7 @@ discard block |
||
| 172 | 172 | */ |
| 173 | 173 | private function getOptionsFromClass($sClassName) |
| 174 | 174 | { |
| 175 | - if(!key_exists($sClassName, $this->aClassOptions)) |
|
| 175 | + if (!key_exists($sClassName, $this->aClassOptions)) |
|
| 176 | 176 | { |
| 177 | 177 | return null; // Class not registered |
| 178 | 178 | } |
@@ -190,18 +190,18 @@ discard block |
||
| 190 | 190 | private function getOptionsFromNamespace($sClassName, $sNamespace = null) |
| 191 | 191 | { |
| 192 | 192 | // Find the corresponding namespace |
| 193 | - if($sNamespace == null) |
|
| 193 | + if ($sNamespace == null) |
|
| 194 | 194 | { |
| 195 | - foreach(array_keys($this->aNamespaceOptions) as $_sNamespace) |
|
| 195 | + foreach (array_keys($this->aNamespaceOptions) as $_sNamespace) |
|
| 196 | 196 | { |
| 197 | - if(substr($sClassName, 0, strlen($_sNamespace) + 1) == $_sNamespace . '\\') |
|
| 197 | + if (substr($sClassName, 0, strlen($_sNamespace) + 1) == $_sNamespace . '\\') |
|
| 198 | 198 | { |
| 199 | 199 | $sNamespace = $_sNamespace; |
| 200 | 200 | break; |
| 201 | 201 | } |
| 202 | 202 | } |
| 203 | 203 | } |
| 204 | - if($sNamespace == null) |
|
| 204 | + if ($sNamespace == null) |
|
| 205 | 205 | { |
| 206 | 206 | return null; // Class not registered |
| 207 | 207 | } |
@@ -209,7 +209,7 @@ discard block |
||
| 209 | 209 | // Get the class options |
| 210 | 210 | $aOptions = $this->aNamespaceOptions[$sNamespace]; |
| 211 | 211 | $aDefaultOptions = []; // ['namespace' => $aOptions['namespace']]; |
| 212 | - if(key_exists('separator', $aOptions)) |
|
| 212 | + if (key_exists('separator', $aOptions)) |
|
| 213 | 213 | { |
| 214 | 214 | $aDefaultOptions['separator'] = $aOptions['separator']; |
| 215 | 215 | } |
@@ -227,11 +227,11 @@ discard block |
||
| 227 | 227 | protected function _getCallableObject($sClassName, array $aOptions) |
| 228 | 228 | { |
| 229 | 229 | // Make sure the registered class exists |
| 230 | - if(key_exists('include', $aOptions)) |
|
| 230 | + if (key_exists('include', $aOptions)) |
|
| 231 | 231 | { |
| 232 | 232 | require_once($aOptions['include']); |
| 233 | 233 | } |
| 234 | - if(!class_exists($sClassName)) |
|
| 234 | + if (!class_exists($sClassName)) |
|
| 235 | 235 | { |
| 236 | 236 | return null; |
| 237 | 237 | } |
@@ -239,13 +239,13 @@ discard block |
||
| 239 | 239 | // Create the callable object |
| 240 | 240 | $xCallableObject = new \Jaxon\Request\Support\CallableObject($sClassName); |
| 241 | 241 | $this->aCallableOptions[$sClassName] = []; |
| 242 | - foreach($aOptions as $sName => $xValue) |
|
| 242 | + foreach ($aOptions as $sName => $xValue) |
|
| 243 | 243 | { |
| 244 | - if($sName == 'separator' || $sName == 'protected') |
|
| 244 | + if ($sName == 'separator' || $sName == 'protected') |
|
| 245 | 245 | { |
| 246 | 246 | $xCallableObject->configure($sName, $xValue); |
| 247 | 247 | } |
| 248 | - elseif(is_array($xValue) && $sName != 'include') |
|
| 248 | + elseif (is_array($xValue) && $sName != 'include') |
|
| 249 | 249 | { |
| 250 | 250 | // These options are to be included in javascript code. |
| 251 | 251 | $this->aCallableOptions[$sClassName][$sName] = $xValue; |
@@ -254,12 +254,12 @@ discard block |
||
| 254 | 254 | $this->aCallableObjects[$sClassName] = $xCallableObject; |
| 255 | 255 | |
| 256 | 256 | // Register the request factory for this callable object |
| 257 | - jaxon()->di()->set($sClassName . '_Factory_Rq', function () use ($sClassName) { |
|
| 257 | + jaxon()->di()->set($sClassName . '_Factory_Rq', function() use ($sClassName) { |
|
| 258 | 258 | $xCallableObject = $this->aCallableObjects[$sClassName]; |
| 259 | 259 | return new \Jaxon\Factory\Request\Portable($xCallableObject); |
| 260 | 260 | }); |
| 261 | 261 | // Register the paginator factory for this callable object |
| 262 | - jaxon()->di()->set($sClassName . '_Factory_Pg', function () use ($sClassName) { |
|
| 262 | + jaxon()->di()->set($sClassName . '_Factory_Pg', function() use ($sClassName) { |
|
| 263 | 263 | $xCallableObject = $this->aCallableObjects[$sClassName]; |
| 264 | 264 | return new \Jaxon\Factory\Request\Paginator($xCallableObject); |
| 265 | 265 | }); |
@@ -280,17 +280,17 @@ discard block |
||
| 280 | 280 | // at the beginning and the end of the class name. |
| 281 | 281 | $sClassName = trim(str_replace(['.', '_'], ['\\', '\\'], (string)$sClassName), '\\'); |
| 282 | 282 | |
| 283 | - if(key_exists($sClassName, $this->aCallableObjects)) |
|
| 283 | + if (key_exists($sClassName, $this->aCallableObjects)) |
|
| 284 | 284 | { |
| 285 | 285 | return $this->aCallableObjects[$sClassName]; |
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | $aOptions = $this->getOptionsFromClass($sClassName); |
| 289 | - if($aOptions === null) |
|
| 289 | + if ($aOptions === null) |
|
| 290 | 290 | { |
| 291 | 291 | $aOptions = $this->getOptionsFromNamespace($sClassName); |
| 292 | 292 | } |
| 293 | - if($aOptions === null) |
|
| 293 | + if ($aOptions === null) |
|
| 294 | 294 | { |
| 295 | 295 | return null; |
| 296 | 296 | } |
@@ -306,9 +306,9 @@ discard block |
||
| 306 | 306 | private function createCallableObjects() |
| 307 | 307 | { |
| 308 | 308 | // Create callable objects for registered classes |
| 309 | - foreach($this->aClassOptions as $sClassName => $aClassOptions) |
|
| 309 | + foreach ($this->aClassOptions as $sClassName => $aClassOptions) |
|
| 310 | 310 | { |
| 311 | - if(!key_exists($sClassName, $this->aCallableObjects)) |
|
| 311 | + if (!key_exists($sClassName, $this->aCallableObjects)) |
|
| 312 | 312 | { |
| 313 | 313 | $this->_getCallableObject($sClassName, $aClassOptions); |
| 314 | 314 | } |
@@ -316,9 +316,9 @@ discard block |
||
| 316 | 316 | |
| 317 | 317 | // Create callable objects for registered namespaces |
| 318 | 318 | $sDS = DIRECTORY_SEPARATOR; |
| 319 | - foreach($this->aNamespaceOptions as $sNamespace => $aOptions) |
|
| 319 | + foreach ($this->aNamespaceOptions as $sNamespace => $aOptions) |
|
| 320 | 320 | { |
| 321 | - if(key_exists($sNamespace, $this->aNamespaces)) |
|
| 321 | + if (key_exists($sNamespace, $this->aNamespaces)) |
|
| 322 | 322 | { |
| 323 | 323 | continue; |
| 324 | 324 | } |
@@ -329,10 +329,10 @@ discard block |
||
| 329 | 329 | $sDirectory = $aOptions['directory']; |
| 330 | 330 | $itDir = new RecursiveDirectoryIterator($sDirectory); |
| 331 | 331 | $itFile = new RecursiveIteratorIterator($itDir); |
| 332 | - foreach($itFile as $xFile) |
|
| 332 | + foreach ($itFile as $xFile) |
|
| 333 | 333 | { |
| 334 | 334 | // skip everything except PHP files |
| 335 | - if(!$xFile->isFile() || $xFile->getExtension() != 'php') |
|
| 335 | + if (!$xFile->isFile() || $xFile->getExtension() != 'php') |
|
| 336 | 336 | { |
| 337 | 337 | continue; |
| 338 | 338 | } |
@@ -341,7 +341,7 @@ discard block |
||
| 341 | 341 | $sClassPath = $sNamespace; |
| 342 | 342 | $sRelativePath = substr($xFile->getPath(), strlen($sDirectory)); |
| 343 | 343 | $sRelativePath = trim(str_replace($sDS, '\\', $sRelativePath), '\\'); |
| 344 | - if($sRelativePath != '') |
|
| 344 | + if ($sRelativePath != '') |
|
| 345 | 345 | { |
| 346 | 346 | $sClassPath .= '\\' . $sRelativePath; |
| 347 | 347 | } |
@@ -349,7 +349,7 @@ discard block |
||
| 349 | 349 | $this->aNamespaces[$sClassPath] = ['separator' => $aOptions['separator']]; |
| 350 | 350 | $sClassName = $sClassPath . '\\' . $xFile->getBasename('.php'); |
| 351 | 351 | |
| 352 | - if(!key_exists($sClassName, $this->aCallableObjects)) |
|
| 352 | + if (!key_exists($sClassName, $this->aCallableObjects)) |
|
| 353 | 353 | { |
| 354 | 354 | $aClassOptions = $this->getOptionsFromNamespace($sClassName, $sNamespace); |
| 355 | 355 | $this->_getCallableObject($sClassName, $aClassOptions); |
@@ -382,11 +382,11 @@ discard block |
||
| 382 | 382 | $this->createCallableObjects(); |
| 383 | 383 | |
| 384 | 384 | $sHash = ''; |
| 385 | - foreach($this->aNamespaces as $sNamespace => $aOptions) |
|
| 385 | + foreach ($this->aNamespaces as $sNamespace => $aOptions) |
|
| 386 | 386 | { |
| 387 | 387 | $sHash .= $sNamespace . $aOptions['separator']; |
| 388 | 388 | } |
| 389 | - foreach($this->aCallableObjects as $sClassName => $xCallableObject) |
|
| 389 | + foreach ($this->aCallableObjects as $sClassName => $xCallableObject) |
|
| 390 | 390 | { |
| 391 | 391 | $sHash .= $sClassName . implode('|', $xCallableObject->getMethods()); |
| 392 | 392 | } |
@@ -407,16 +407,16 @@ discard block |
||
| 407 | 407 | |
| 408 | 408 | $aJsClasses = []; |
| 409 | 409 | $sCode = ''; |
| 410 | - foreach(array_keys($this->aNamespaces) as $sNamespace) |
|
| 410 | + foreach (array_keys($this->aNamespaces) as $sNamespace) |
|
| 411 | 411 | { |
| 412 | 412 | $offset = 0; |
| 413 | 413 | $sJsNamespace = str_replace('\\', '.', $sNamespace); |
| 414 | 414 | $sJsNamespace .= '.Null'; // This is a sentinel. The last token is not processed in the while loop. |
| 415 | - while(($dotPosition = strpos($sJsNamespace, '.', $offset)) !== false) |
|
| 415 | + while (($dotPosition = strpos($sJsNamespace, '.', $offset)) !== false) |
|
| 416 | 416 | { |
| 417 | 417 | $sJsClass = substr($sJsNamespace, 0, $dotPosition); |
| 418 | 418 | // Generate code for this object |
| 419 | - if(!key_exists($sJsClass, $aJsClasses)) |
|
| 419 | + if (!key_exists($sJsClass, $aJsClasses)) |
|
| 420 | 420 | { |
| 421 | 421 | $sCode .= "$sPrefix$sJsClass = {};\n"; |
| 422 | 422 | $aJsClasses[$sJsClass] = $sJsClass; |
@@ -425,13 +425,13 @@ discard block |
||
| 425 | 425 | } |
| 426 | 426 | } |
| 427 | 427 | |
| 428 | - foreach($this->aCallableObjects as $sClassName => $xCallableObject) |
|
| 428 | + foreach ($this->aCallableObjects as $sClassName => $xCallableObject) |
|
| 429 | 429 | { |
| 430 | 430 | $aConfig = $this->aCallableOptions[$sClassName]; |
| 431 | 431 | $aCommonConfig = key_exists('*', $aConfig) ? $aConfig['*'] : []; |
| 432 | 432 | |
| 433 | 433 | $aMethods = []; |
| 434 | - foreach($xCallableObject->getMethods() as $sMethodName) |
|
| 434 | + foreach ($xCallableObject->getMethods() as $sMethodName) |
|
| 435 | 435 | { |
| 436 | 436 | // Specific options for this method |
| 437 | 437 | $aMethodConfig = key_exists($sMethodName, $aConfig) ? |
@@ -105,33 +105,33 @@ discard block |
||
| 105 | 105 | */ |
| 106 | 106 | public function register($sType, $sDirectory, $aOptions) |
| 107 | 107 | { |
| 108 | - if($sType != $this->getName()) |
|
| 108 | + if ($sType != $this->getName()) |
|
| 109 | 109 | { |
| 110 | 110 | return false; |
| 111 | 111 | } |
| 112 | 112 | |
| 113 | - if(!is_string($sDirectory) || !is_dir($sDirectory)) |
|
| 113 | + if (!is_string($sDirectory) || !is_dir($sDirectory)) |
|
| 114 | 114 | { |
| 115 | 115 | throw new \Jaxon\Exception\Error($this->trans('errors.objects.invalid-declaration')); |
| 116 | 116 | } |
| 117 | - if(is_string($aOptions)) |
|
| 117 | + if (is_string($aOptions)) |
|
| 118 | 118 | { |
| 119 | 119 | $aOptions = ['namespace' => $aOptions]; |
| 120 | 120 | } |
| 121 | - if(!is_array($aOptions)) |
|
| 121 | + if (!is_array($aOptions)) |
|
| 122 | 122 | { |
| 123 | 123 | throw new \Jaxon\Exception\Error($this->trans('errors.objects.invalid-declaration')); |
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | $sDirectory = rtrim(trim($sDirectory), DIRECTORY_SEPARATOR); |
| 127 | - if(!is_dir($sDirectory)) |
|
| 127 | + if (!is_dir($sDirectory)) |
|
| 128 | 128 | { |
| 129 | 129 | return false; |
| 130 | 130 | } |
| 131 | 131 | $aOptions['directory'] = realpath($sDirectory); |
| 132 | 132 | |
| 133 | 133 | $sNamespace = key_exists('namespace', $aOptions) ? $aOptions['namespace'] : ''; |
| 134 | - if(!($sNamespace = trim($sNamespace, ' \\'))) |
|
| 134 | + if (!($sNamespace = trim($sNamespace, ' \\'))) |
|
| 135 | 135 | { |
| 136 | 136 | $sNamespace = ''; |
| 137 | 137 | } |
@@ -145,17 +145,17 @@ discard block |
||
| 145 | 145 | |
| 146 | 146 | // Change the keys in $aOptions to have "\" as separator |
| 147 | 147 | $_aOptions = []; |
| 148 | - foreach($aOptions as $sName => $aOption) |
|
| 148 | + foreach ($aOptions as $sName => $aOption) |
|
| 149 | 149 | { |
| 150 | 150 | $sName = trim(str_replace('.', '\\', $sName), ' \\'); |
| 151 | 151 | $_aOptions[$sName] = $aOption; |
| 152 | 152 | } |
| 153 | 153 | $aOptions = $_aOptions; |
| 154 | 154 | |
| 155 | - if(($sNamespace)) |
|
| 155 | + if (($sNamespace)) |
|
| 156 | 156 | { |
| 157 | 157 | // Register the dir with PSR4 autoloading |
| 158 | - if(($this->xAutoloader)) |
|
| 158 | + if (($this->xAutoloader)) |
|
| 159 | 159 | { |
| 160 | 160 | $this->xAutoloader->setPsr4($sNamespace . '\\', $sDirectory); |
| 161 | 161 | } |