Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/main/lib/engine/ |
Upload File : |
<?php namespace Bitrix\Main\Engine; use Bitrix\Main\ObjectException; final class ControllerBuilder { public static function build(string $controllerClass, $options): Controller { try { $scope = $options['scope'] ?? Controller::SCOPE_AJAX; $currentUser = $options['currentUser'] ?? CurrentUser::get(); $reflectionClass = new \ReflectionClass($controllerClass); if ($reflectionClass->isAbstract()) { throw new ObjectException("Controller class should be non abstract."); } if (!$reflectionClass->isSubclassOf(Controller::class)) { throw new ObjectException("Controller class should be subclass of \Bitrix\Main\Engine\Controller."); } /** @var Controller $controller */ /** @see \Bitrix\Main\Engine\Controller::__construct */ /** @see \Bitrix\Main\Engine\Controller::forward */ $controller = $reflectionClass->newInstance(); $controller->setScope($scope); $controller->setCurrentUser($currentUser); return $controller; } catch (\ReflectionException $exception) { throw new ObjectException("Unable to construct controller {{$controllerClass}}.", $exception); } } }