@@ -110,7 +110,7 @@ discard block |
||
| 110 | 110 | |
| 111 | 111 | // The methods of the CallableClass class must not be exported |
| 112 | 112 | $xCallableClass = new ReflectionClass(CallableClass::class); |
| 113 | - foreach($xCallableClass->getMethods(ReflectionMethod::IS_PUBLIC) as $xMethod) |
|
| 113 | + foreach ($xCallableClass->getMethods(ReflectionMethod::IS_PUBLIC) as $xMethod) |
|
| 114 | 114 | { |
| 115 | 115 | $this->aProtectedMethods[] = $xMethod->getName(); |
| 116 | 116 | } |
@@ -181,15 +181,15 @@ discard block |
||
| 181 | 181 | */ |
| 182 | 182 | public function makeClassOptions(string $sClassName, array $aClassOptions, array $aDirectoryOptions): array |
| 183 | 183 | { |
| 184 | - foreach($this->aDefaultClassOptions as $sOption => $xValue) |
|
| 184 | + foreach ($this->aDefaultClassOptions as $sOption => $xValue) |
|
| 185 | 185 | { |
| 186 | - if(!isset($aClassOptions[$sOption])) |
|
| 186 | + if (!isset($aClassOptions[$sOption])) |
|
| 187 | 187 | { |
| 188 | 188 | $aClassOptions[$sOption] = $xValue; |
| 189 | 189 | } |
| 190 | 190 | } |
| 191 | - $aClassOptions['excluded'] = (bool)($aClassOptions['excluded'] ?? false); // Convert to bool. |
|
| 192 | - if(is_string($aClassOptions['protected'])) |
|
| 191 | + $aClassOptions['excluded'] = (bool) ($aClassOptions['excluded'] ?? false); // Convert to bool. |
|
| 192 | + if (is_string($aClassOptions['protected'])) |
|
| 193 | 193 | { |
| 194 | 194 | $aClassOptions['protected'] = [$aClassOptions['protected']]; // Convert to array. |
| 195 | 195 | } |
@@ -200,25 +200,25 @@ discard block |
||
| 200 | 200 | $aDirectoryOptions['classes']['*'] ?? [], // Options for all classes |
| 201 | 201 | $aDirectoryOptions['classes'][$sClassName] ?? [], // Options for this specific class |
| 202 | 202 | ]; |
| 203 | - foreach($aOptionGroups as $aOptionGroup) |
|
| 203 | + foreach ($aOptionGroups as $aOptionGroup) |
|
| 204 | 204 | { |
| 205 | - if(isset($aOptionGroup['separator'])) |
|
| 205 | + if (isset($aOptionGroup['separator'])) |
|
| 206 | 206 | { |
| 207 | - $aClassOptions['separator'] = (string)$aOptionGroup['separator']; |
|
| 207 | + $aClassOptions['separator'] = (string) $aOptionGroup['separator']; |
|
| 208 | 208 | } |
| 209 | - if(isset($aOptionGroup['excluded'])) |
|
| 209 | + if (isset($aOptionGroup['excluded'])) |
|
| 210 | 210 | { |
| 211 | - $aClassOptions['excluded'] = (bool)$aOptionGroup['excluded']; |
|
| 211 | + $aClassOptions['excluded'] = (bool) $aOptionGroup['excluded']; |
|
| 212 | 212 | } |
| 213 | - if(isset($aOptionGroup['protected'])) |
|
| 213 | + if (isset($aOptionGroup['protected'])) |
|
| 214 | 214 | { |
| 215 | - if(is_string($aOptionGroup['protected'])) |
|
| 215 | + if (is_string($aOptionGroup['protected'])) |
|
| 216 | 216 | { |
| 217 | 217 | $aOptionGroup['protected'] = [$aOptionGroup['protected']]; // Convert to array. |
| 218 | 218 | } |
| 219 | 219 | $aClassOptions['protected'] = array_merge($aClassOptions['protected'], $aOptionGroup['protected']); |
| 220 | 220 | } |
| 221 | - if(isset($aOptionGroup['functions'])) |
|
| 221 | + if (isset($aOptionGroup['functions'])) |
|
| 222 | 222 | { |
| 223 | 223 | $aClassOptions['functions'] = array_merge($aClassOptions['functions'], $aOptionGroup['functions']); |
| 224 | 224 | } |
@@ -264,10 +264,10 @@ discard block |
||
| 264 | 264 | private function getNamespaceClassOptions(string $sClassName) |
| 265 | 265 | { |
| 266 | 266 | // Find the corresponding namespace |
| 267 | - foreach($this->aNamespaceOptions as $sNamespace => $aOptions) |
|
| 267 | + foreach ($this->aNamespaceOptions as $sNamespace => $aOptions) |
|
| 268 | 268 | { |
| 269 | 269 | // Check if the namespace matches the class. |
| 270 | - if(strncmp($sClassName, $sNamespace . '\\', strlen($sNamespace) + 1) === 0) |
|
| 270 | + if (strncmp($sClassName, $sNamespace . '\\', strlen($sNamespace) + 1) === 0) |
|
| 271 | 271 | { |
| 272 | 272 | // Save the class options |
| 273 | 273 | $this->aClasses[$sClassName] = $this->makeClassOptions($sClassName, |
@@ -288,17 +288,17 @@ discard block |
||
| 288 | 288 | public function getClassOptions(string $sClassName): array |
| 289 | 289 | { |
| 290 | 290 | // Find options for a class registered with namespace. |
| 291 | - if(!isset($this->aClasses[$sClassName])) |
|
| 291 | + if (!isset($this->aClasses[$sClassName])) |
|
| 292 | 292 | { |
| 293 | 293 | $this->getNamespaceClassOptions($sClassName); |
| 294 | - if(!isset($this->aClasses[$sClassName])) |
|
| 294 | + if (!isset($this->aClasses[$sClassName])) |
|
| 295 | 295 | { |
| 296 | 296 | // Find options for a class registered without namespace. |
| 297 | 297 | // We then need to parse all classes to be able to find one. |
| 298 | 298 | $this->di->getCallableRegistry()->parseDirectories(); |
| 299 | 299 | } |
| 300 | 300 | } |
| 301 | - if(isset($this->aClasses[$sClassName])) |
|
| 301 | + if (isset($this->aClasses[$sClassName])) |
|
| 302 | 302 | { |
| 303 | 303 | return $this->aClasses[$sClassName]; |
| 304 | 304 | } |
@@ -327,7 +327,7 @@ discard block |
||
| 327 | 327 | public function getCallableObjects(): array |
| 328 | 328 | { |
| 329 | 329 | $aCallableObjects = []; |
| 330 | - foreach($this->aClasses as $sClassName => $aOptions) |
|
| 330 | + foreach ($this->aClasses as $sClassName => $aOptions) |
|
| 331 | 331 | { |
| 332 | 332 | $this->di->registerCallableClass($sClassName, $aOptions); |
| 333 | 333 | $aCallableObjects[$sClassName] = $this->di->getCallableObject($sClassName); |
@@ -240,30 +240,30 @@ discard block |
||
| 240 | 240 | switch($sName) |
| 241 | 241 | { |
| 242 | 242 | // Set the separator |
| 243 | - case 'separator': |
|
| 244 | - $this->setSeparator((string)$xValue); |
|
| 245 | - break; |
|
| 246 | - case 'excluded': |
|
| 247 | - $this->bExcluded = (bool)$xValue; |
|
| 248 | - break; |
|
| 249 | - // Set the protected methods |
|
| 250 | - case 'protected': |
|
| 251 | - $this->addProtectedMethods($xValue); |
|
| 252 | - break; |
|
| 253 | - // Set the methods to call before processing the request |
|
| 254 | - case '__before': |
|
| 255 | - $this->setHookMethods($this->aBeforeMethods, $xValue); |
|
| 256 | - break; |
|
| 257 | - // Set the methods to call after processing the request |
|
| 258 | - case '__after': |
|
| 259 | - $this->setHookMethods($this->aAfterMethods, $xValue); |
|
| 260 | - break; |
|
| 261 | - // Set the attributes to inject in the callable object |
|
| 262 | - case '__di': |
|
| 263 | - $this->addDiOption($xValue); |
|
| 264 | - break; |
|
| 265 | - default: |
|
| 266 | - break; |
|
| 243 | + case 'separator': |
|
| 244 | + $this->setSeparator((string)$xValue); |
|
| 245 | + break; |
|
| 246 | + case 'excluded': |
|
| 247 | + $this->bExcluded = (bool)$xValue; |
|
| 248 | + break; |
|
| 249 | + // Set the protected methods |
|
| 250 | + case 'protected': |
|
| 251 | + $this->addProtectedMethods($xValue); |
|
| 252 | + break; |
|
| 253 | + // Set the methods to call before processing the request |
|
| 254 | + case '__before': |
|
| 255 | + $this->setHookMethods($this->aBeforeMethods, $xValue); |
|
| 256 | + break; |
|
| 257 | + // Set the methods to call after processing the request |
|
| 258 | + case '__after': |
|
| 259 | + $this->setHookMethods($this->aAfterMethods, $xValue); |
|
| 260 | + break; |
|
| 261 | + // Set the attributes to inject in the callable object |
|
| 262 | + case '__di': |
|
| 263 | + $this->addDiOption($xValue); |
|
| 264 | + break; |
|
| 265 | + default: |
|
| 266 | + break; |
|
| 267 | 267 | } |
| 268 | 268 | } |
| 269 | 269 | |
@@ -311,20 +311,20 @@ discard block |
||
| 311 | 311 | { |
| 312 | 312 | switch($sOptionName) |
| 313 | 313 | { |
| 314 | - case 'excluded': |
|
| 315 | - if((bool)$xOptionValue) |
|
| 316 | - { |
|
| 317 | - $this->addProtectedMethods($sFunctionName); |
|
| 318 | - } |
|
| 319 | - break; |
|
| 320 | - // For databags, all the value are merged in a single array. |
|
| 321 | - case 'bags': |
|
| 322 | - $this->_addJsArrayOption($sFunctionName, $sOptionName, $xOptionValue); |
|
| 323 | - return; |
|
| 324 | - // For all the other options, including callback, only the last value is kept. |
|
| 325 | - case 'callback': |
|
| 326 | - default: |
|
| 327 | - $this->_setJsOption($sFunctionName, $sOptionName, $xOptionValue); |
|
| 314 | + case 'excluded': |
|
| 315 | + if((bool)$xOptionValue) |
|
| 316 | + { |
|
| 317 | + $this->addProtectedMethods($sFunctionName); |
|
| 318 | + } |
|
| 319 | + break; |
|
| 320 | + // For databags, all the value are merged in a single array. |
|
| 321 | + case 'bags': |
|
| 322 | + $this->_addJsArrayOption($sFunctionName, $sOptionName, $xOptionValue); |
|
| 323 | + return; |
|
| 324 | + // For all the other options, including callback, only the last value is kept. |
|
| 325 | + case 'callback': |
|
| 326 | + default: |
|
| 327 | + $this->_setJsOption($sFunctionName, $sOptionName, $xOptionValue); |
|
| 328 | 328 | } |
| 329 | 329 | } |
| 330 | 330 | |
@@ -81,8 +81,8 @@ discard block |
||
| 81 | 81 | public function __construct(array $aOptions, array $aAnnotations) |
| 82 | 82 | { |
| 83 | 83 | [$bExcluded, $aAnnotationOptions, $aAnnotationProtected] = $aAnnotations; |
| 84 | - $this->bExcluded = $bExcluded || (bool)($aOptions['excluded'] ?? false); |
|
| 85 | - if($this->bExcluded) |
|
| 84 | + $this->bExcluded = $bExcluded || (bool) ($aOptions['excluded'] ?? false); |
|
| 85 | + if ($this->bExcluded) |
|
| 86 | 86 | { |
| 87 | 87 | return; |
| 88 | 88 | } |
@@ -91,15 +91,15 @@ discard block |
||
| 91 | 91 | $this->addProtectedMethods($aOptions['protected']); |
| 92 | 92 | $this->addProtectedMethods($aAnnotationProtected); |
| 93 | 93 | |
| 94 | - foreach($aOptions['functions'] as $sNames => $aFunctionOptions) |
|
| 94 | + foreach ($aOptions['functions'] as $sNames => $aFunctionOptions) |
|
| 95 | 95 | { |
| 96 | 96 | $aFunctionNames = explode(',', $sNames); // Names are in comma-separated list. |
| 97 | - foreach($aFunctionNames as $sFunctionName) |
|
| 97 | + foreach ($aFunctionNames as $sFunctionName) |
|
| 98 | 98 | { |
| 99 | 99 | $this->addFunctionOptions($sFunctionName, $aFunctionOptions); |
| 100 | 100 | } |
| 101 | 101 | } |
| 102 | - foreach($aAnnotationOptions as $sFunctionName => $aFunctionOptions) |
|
| 102 | + foreach ($aAnnotationOptions as $sFunctionName => $aFunctionOptions) |
|
| 103 | 103 | { |
| 104 | 104 | $this->addFunctionOptions($sFunctionName, $aFunctionOptions); |
| 105 | 105 | } |
@@ -112,7 +112,7 @@ discard block |
||
| 112 | 112 | */ |
| 113 | 113 | private function setSeparator(string $sSeparator) |
| 114 | 114 | { |
| 115 | - if($sSeparator === '_' || $sSeparator === '.') |
|
| 115 | + if ($sSeparator === '_' || $sSeparator === '.') |
|
| 116 | 116 | { |
| 117 | 117 | $this->sSeparator = $sSeparator; |
| 118 | 118 | } |
@@ -125,14 +125,14 @@ discard block |
||
| 125 | 125 | */ |
| 126 | 126 | private function addProtectedMethods($xMethods) |
| 127 | 127 | { |
| 128 | - if(!is_array($xMethods)) |
|
| 128 | + if (!is_array($xMethods)) |
|
| 129 | 129 | { |
| 130 | - $this->aProtectedMethods[trim((string)$xMethods)] = true; |
|
| 130 | + $this->aProtectedMethods[trim((string) $xMethods)] = true; |
|
| 131 | 131 | return; |
| 132 | 132 | } |
| 133 | - foreach($xMethods as $sMethod) |
|
| 133 | + foreach ($xMethods as $sMethod) |
|
| 134 | 134 | { |
| 135 | - $this->aProtectedMethods[trim((string)$sMethod)] = true; |
|
| 135 | + $this->aProtectedMethods[trim((string) $sMethod)] = true; |
|
| 136 | 136 | } |
| 137 | 137 | } |
| 138 | 138 | |
@@ -206,13 +206,13 @@ discard block |
||
| 206 | 206 | */ |
| 207 | 207 | private function setHookMethods(array &$aHookMethods, $xValue) |
| 208 | 208 | { |
| 209 | - foreach($xValue as $sCalledMethod => $xMethodToCall) |
|
| 209 | + foreach ($xValue as $sCalledMethod => $xMethodToCall) |
|
| 210 | 210 | { |
| 211 | - if(is_array($xMethodToCall)) |
|
| 211 | + if (is_array($xMethodToCall)) |
|
| 212 | 212 | { |
| 213 | 213 | $aHookMethods[$sCalledMethod] = $xMethodToCall; |
| 214 | 214 | } |
| 215 | - elseif(is_string($xMethodToCall)) |
|
| 215 | + elseif (is_string($xMethodToCall)) |
|
| 216 | 216 | { |
| 217 | 217 | $aHookMethods[$sCalledMethod] = [$xMethodToCall]; |
| 218 | 218 | } |
@@ -237,14 +237,14 @@ discard block |
||
| 237 | 237 | */ |
| 238 | 238 | public function addOption(string $sName, $xValue) |
| 239 | 239 | { |
| 240 | - switch($sName) |
|
| 240 | + switch ($sName) |
|
| 241 | 241 | { |
| 242 | 242 | // Set the separator |
| 243 | 243 | case 'separator': |
| 244 | - $this->setSeparator((string)$xValue); |
|
| 244 | + $this->setSeparator((string) $xValue); |
|
| 245 | 245 | break; |
| 246 | 246 | case 'excluded': |
| 247 | - $this->bExcluded = (bool)$xValue; |
|
| 247 | + $this->bExcluded = (bool) $xValue; |
|
| 248 | 248 | break; |
| 249 | 249 | // Set the protected methods |
| 250 | 250 | case 'protected': |
@@ -276,11 +276,11 @@ discard block |
||
| 276 | 276 | */ |
| 277 | 277 | private function _addJsArrayOption(string $sFunctionName, string $sOptionName, $xOptionValue) |
| 278 | 278 | { |
| 279 | - if(is_string($xOptionValue)) |
|
| 279 | + if (is_string($xOptionValue)) |
|
| 280 | 280 | { |
| 281 | 281 | $xOptionValue = [$xOptionValue]; |
| 282 | 282 | } |
| 283 | - if(!is_array($xOptionValue)) |
|
| 283 | + if (!is_array($xOptionValue)) |
|
| 284 | 284 | { |
| 285 | 285 | return; // Do not save. |
| 286 | 286 | } |
@@ -309,10 +309,10 @@ discard block |
||
| 309 | 309 | */ |
| 310 | 310 | private function addJsOption(string $sFunctionName, string $sOptionName, $xOptionValue) |
| 311 | 311 | { |
| 312 | - switch($sOptionName) |
|
| 312 | + switch ($sOptionName) |
|
| 313 | 313 | { |
| 314 | 314 | case 'excluded': |
| 315 | - if((bool)$xOptionValue) |
|
| 315 | + if ((bool) $xOptionValue) |
|
| 316 | 316 | { |
| 317 | 317 | $this->addProtectedMethods($sFunctionName); |
| 318 | 318 | } |
@@ -336,12 +336,11 @@ discard block |
||
| 336 | 336 | */ |
| 337 | 337 | private function addFunctionOptions(string $sFunctionName, array $aFunctionOptions) |
| 338 | 338 | { |
| 339 | - foreach($aFunctionOptions as $sOptionName => $xOptionValue) |
|
| 339 | + foreach ($aFunctionOptions as $sOptionName => $xOptionValue) |
|
| 340 | 340 | { |
| 341 | 341 | substr($sOptionName, 0, 2) === '__' ? |
| 342 | 342 | // Options for PHP classes. They start with "__". |
| 343 | - $this->addOption($sOptionName, [$sFunctionName => $xOptionValue]) : |
|
| 344 | - // Options for javascript code. |
|
| 343 | + $this->addOption($sOptionName, [$sFunctionName => $xOptionValue]) : // Options for javascript code. |
|
| 345 | 344 | $this->addJsOption($sFunctionName, $sOptionName, $xOptionValue); |
| 346 | 345 | } |
| 347 | 346 | } |
@@ -357,12 +356,11 @@ discard block |
||
| 357 | 356 | $aOptions = array_merge($this->aJsOptions['*'] ?? []); // Clone the array |
| 358 | 357 | // Then add the method options. |
| 359 | 358 | $aMethodOptions = $this->aJsOptions[$sMethodName] ?? []; |
| 360 | - foreach($aMethodOptions as $sOptionName => $xOptionValue) |
|
| 359 | + foreach ($aMethodOptions as $sOptionName => $xOptionValue) |
|
| 361 | 360 | { |
| 362 | 361 | // For databags, merge the values in a single array. |
| 363 | 362 | // For all the other options, including callback, keep the last value. |
| 364 | - $aOptions[$sOptionName] = $sOptionName !== 'bags' ? $xOptionValue : |
|
| 365 | - array_unique(array_merge($aOptions[$sOptionName] ?? [], $xOptionValue)); |
|
| 363 | + $aOptions[$sOptionName] = $sOptionName !== 'bags' ? $xOptionValue : array_unique(array_merge($aOptions[$sOptionName] ?? [], $xOptionValue)); |
|
| 366 | 364 | } |
| 367 | 365 | return $aOptions; |
| 368 | 366 | } |