Conditions | 51 |
Paths | > 20000 |
Total Lines | 248 |
Code Lines | 143 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
401 | private function httpHandler() |
||
402 | { |
||
403 | if (config()->loadFile('session') === true) { |
||
404 | |||
405 | // Instantiate Session Service |
||
406 | $session = new Session(config('session', true)); |
||
407 | $session->setLogger($this->services->get('logger')); |
||
408 | |||
409 | if ( ! $session->isStarted()) { |
||
410 | $session->start(); |
||
411 | } |
||
412 | |||
413 | $this->services->add($session, 'session'); |
||
414 | |||
415 | if ($session->has('language') and $this->services->has('language')) { |
||
416 | language()->setDefault($session->get('language')); |
||
417 | } else { |
||
418 | $session->set('language', language()->getDefault()); |
||
419 | } |
||
420 | |||
421 | if (config('security')->protection[ 'csrf' ] === true) { |
||
422 | $csrfProtection = new Security\Protections\Csrf(); |
||
423 | $this->services->add($csrfProtection, 'csrfProtection'); |
||
424 | } |
||
425 | |||
426 | if (config('security')->protection[ 'xss' ] === true) { |
||
427 | $xssProtection = new Security\Protections\Xss(); |
||
428 | $this->services->add($xssProtection, 'xssProtection'); |
||
429 | } |
||
430 | } |
||
431 | |||
432 | if (config()->loadFile('view') === true) { |
||
433 | // Instantiate Http UserAgent Service |
||
434 | $this->services->load(Framework\Http\UserAgent::class); |
||
435 | |||
436 | // Instantiate Http View Service |
||
437 | $this->services->load(Framework\Http\Parser::class); |
||
438 | |||
439 | // Instantiate Http View Service |
||
440 | $this->services->load(Framework\Http\View::class); |
||
441 | |||
442 | // Instantiate Http Presenter Service |
||
443 | $this->services->load(Framework\Http\Presenter::class); |
||
444 | |||
445 | // Initialize Http Presenter Service |
||
446 | presenter()->initialize(); |
||
447 | } |
||
448 | |||
449 | // Instantiate Http Middleware Service |
||
450 | $this->services->load(Framework\Http\Middleware::class); |
||
451 | |||
452 | // Instantiate Http Router Service |
||
453 | $this->services->load(Framework\Http\Router::class); |
||
454 | |||
455 | if (profiler() !== false) { |
||
456 | profiler()->watch('Parse Router Request'); |
||
457 | } |
||
458 | router()->parseRequest(); |
||
459 | |||
460 | if (profiler() !== false) { |
||
461 | profiler()->watch('Running Middleware Service: Pre Controller'); |
||
462 | } |
||
463 | middleware()->run(); |
||
464 | |||
465 | if ($this->services->has('controller')) { |
||
466 | $controller = $this->services->get('controller'); |
||
467 | |||
468 | $controllerParameter = dash($controller->getParameter()); |
||
469 | $controllerRequestMethod = dash($controller->getRequestMethod()); |
||
470 | |||
471 | // Autoload Language |
||
472 | if ($this->services->has('language')) { |
||
473 | language()->loadFile($controller->getParameter()); |
||
474 | language()->loadFile($controller->getRequestMethod()); |
||
475 | language()->loadFile($controller->getParameter() . '/' . $controller->getRequestMethod()); |
||
476 | } |
||
477 | |||
478 | // Autoload Model |
||
479 | foreach ($this->modules as $module) { |
||
480 | if (in_array($module->getType(), ['KERNEL', 'FRAMEWORK'])) { |
||
481 | continue; |
||
482 | } |
||
483 | $module->loadModel(); |
||
484 | } |
||
485 | |||
486 | // Autoload Model |
||
487 | $modelClassName = str_replace(['Controllers', 'Presenters'], 'Models', $controller->getName()); |
||
488 | |||
489 | if (class_exists($modelClassName)) { |
||
490 | $this->models->load($modelClassName, 'controller'); |
||
491 | } |
||
492 | |||
493 | // Autoload Assets |
||
494 | if ($this->services->has('view')) { |
||
495 | $controllerAssets = []; |
||
496 | $controllerAssetsDirs = []; |
||
497 | |||
498 | // Autoload Assets |
||
499 | foreach ($this->modules as $module) { |
||
500 | if (in_array($module->getType(), ['KERNEL', 'FRAMEWORK'])) { |
||
501 | continue; |
||
502 | } |
||
503 | |||
504 | $controllerAssets[] = $module->getParameter(); |
||
505 | $controllerAssetsDirs[] = $module->getParameter(); |
||
506 | } |
||
507 | |||
508 | $controllerAssets = array_reverse($controllerAssets); |
||
509 | $controllerAssetsDirs = array_reverse($controllerAssetsDirs); |
||
510 | |||
511 | $controllerAssets[] = $controllerParameter; |
||
512 | $controllerAssetsDirs[] = $controllerParameter; |
||
513 | |||
514 | $controllerAssets[] = $controllerRequestMethod; |
||
515 | |||
516 | foreach ($controllerAssetsDirs as $controllerAssetsDir) { |
||
517 | $controllerAssets[] = $controllerAssetsDir . '/' . $controllerParameter; |
||
518 | $controllerAssets[] = $controllerAssetsDir . '/' . $controllerRequestMethod; |
||
519 | $controllerAssets[] = $controllerAssetsDir . '/' . $controllerParameter . '/' . $controllerRequestMethod; |
||
520 | } |
||
521 | |||
522 | // Autoload Presenter |
||
523 | $presenterClassName = str_replace('Controllers', 'Presenters', $controller->getName()); |
||
524 | |||
525 | if (class_exists($presenterClassName)) { |
||
526 | $presenterClassObject = new $presenterClassName(); |
||
527 | if ($presenterClassObject instanceof Framework\Http\Presenter) { |
||
528 | $this->services->add($presenterClassObject, 'presenter'); |
||
529 | } |
||
530 | } |
||
531 | |||
532 | // Autoload Assets |
||
533 | presenter()->assets->loadCss($controllerAssets); |
||
534 | presenter()->assets->loadJs($controllerAssets); |
||
535 | } |
||
536 | |||
537 | // Initialize Controller |
||
538 | if (profiler() !== false) { |
||
539 | profiler()->watch('Calling Hooks Service: Pre Controller'); |
||
540 | } |
||
541 | |||
542 | hooks()->callEvent(Framework\Services\Hooks::PRE_CONTROLLER); |
||
543 | |||
544 | if (profiler() !== false) { |
||
545 | profiler()->watch('Instantiating Requested Controller: ' . $controller->getClass()); |
||
546 | } |
||
547 | $requestController = $controller->getInstance(); |
||
548 | |||
549 | if (method_exists($requestController, '__reconstruct')) { |
||
550 | $requestController->__reconstruct(); |
||
551 | } |
||
552 | |||
553 | $this->services->add($requestController, 'controller'); |
||
554 | |||
555 | if (profiler() !== false) { |
||
556 | profiler()->watch('Calling Hooks Service: Post Controller'); |
||
557 | } |
||
558 | hooks()->callEvent(Framework\Services\Hooks::POST_CONTROLLER); |
||
559 | |||
560 | if (profiler() !== false) { |
||
561 | profiler()->watch('Calling Middleware Service: Post Controller'); |
||
562 | } |
||
563 | middleware()->run(); |
||
564 | |||
565 | $requestMethod = $controller->getRequestMethod(); |
||
566 | $requestMethodArgs = $controller->getRequestMethodArgs(); |
||
567 | |||
568 | // Call the requested controller method |
||
569 | if (profiler() !== false) { |
||
570 | profiler()->watch('Execute Requested Controller Method'); |
||
571 | } |
||
572 | |||
573 | ob_start(); |
||
574 | $requestControllerOutput = $requestController->__call($requestMethod, $requestMethodArgs); |
||
575 | |||
576 | if (empty($requestControllerOutput)) { |
||
577 | $requestControllerOutput = ob_get_contents(); |
||
578 | ob_end_clean(); |
||
579 | } |
||
580 | |||
581 | if (is_numeric($requestControllerOutput)) { |
||
582 | output()->sendError($requestControllerOutput); |
||
583 | } elseif (is_bool($requestControllerOutput)) { |
||
584 | if ($requestControllerOutput === true) { |
||
585 | output()->sendError(200); |
||
586 | } elseif ($requestControllerOutput === false) { |
||
587 | output()->sendError(204); |
||
588 | } |
||
589 | } elseif (is_array($requestControllerOutput) or is_object($requestControllerOutput)) { |
||
590 | output()->sendPayload($requestControllerOutput); |
||
591 | } elseif ($requestController instanceof Framework\Http\Controllers\Restful) { |
||
592 | if (empty($requestControllerOutput) or $requestControllerOutput === '') { |
||
593 | $requestController->sendError(204); |
||
594 | } elseif (is_string($requestControllerOutput)) { |
||
595 | if (is_json($requestControllerOutput)) { |
||
596 | output()->setContentType('application/json'); |
||
597 | } else { |
||
598 | output()->setContentType('text/plain'); |
||
599 | } |
||
600 | |||
601 | echo $requestControllerOutput; |
||
602 | } |
||
603 | } elseif (is_string($requestControllerOutput)) { |
||
604 | if (is_json($requestControllerOutput)) { |
||
605 | output()->setContentType('application/json'); |
||
606 | } elseif ($this->services->has('view')) { |
||
607 | if (empty($requestControllerOutput) or $requestControllerOutput === '') { |
||
608 | $filenames = [ |
||
609 | $controllerRequestMethod, |
||
610 | $controllerParameter . DIRECTORY_SEPARATOR . $controllerRequestMethod, |
||
611 | ]; |
||
612 | |||
613 | if ($controllerRequestMethod === 'index') { |
||
614 | array_unshift($filenames, $controllerParameter); |
||
615 | } |
||
616 | |||
617 | foreach ($filenames as $filename) { |
||
618 | if (false !== ($filePath = view()->getFilePath($filename))) { |
||
619 | view()->load($filePath); |
||
620 | break; |
||
621 | } |
||
622 | } |
||
623 | } else { |
||
624 | presenter()->partials->offsetSet('content', $requestControllerOutput); |
||
625 | } |
||
626 | |||
627 | if (presenter()->partials->offsetExists('content')) { |
||
628 | $htmlOutput = view()->render(); |
||
629 | |||
630 | if (empty($htmlOutput)) { |
||
631 | output()->sendError(204); |
||
632 | } else { |
||
633 | output()->setContentType('text/html'); |
||
634 | output()->send($htmlOutput); |
||
635 | } |
||
636 | } else { |
||
637 | output()->sendError(204); |
||
638 | } |
||
639 | } elseif (empty($requestControllerOutput) or $requestControllerOutput === '') { |
||
640 | output()->sendError(204); |
||
641 | } else { |
||
642 | output()->setContentType('text/plain'); |
||
643 | output()->send($requestControllerOutput); |
||
644 | } |
||
645 | } |
||
646 | } else { |
||
647 | // Show Error (404) Page Not Found |
||
648 | output()->sendError(404); |
||
649 | } |
||
652 |