@@ -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 | } |