%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.15.223.12 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/rest/lib/configuration/dataprovider/ |
Upload File : |
<?php namespace Bitrix\Rest\Configuration\DataProvider; use Bitrix\Main\SystemException; use Bitrix\Rest\Configuration\DataProvider\Disk; use Bitrix\Rest\Configuration\DataProvider\IO; /** * Class Controller * @package Bitrix\Rest\Configuration\DataProvider */ class Controller { public const CODE_DISK = 'disk'; public const CODE_IO = 'io'; private const ITEM_LIST = [ self::CODE_DISK => Disk\Base::class, self::CODE_IO => IO\Base::class, ]; private $errorList = []; /** @var Controller|null */ private static $instance; /** * @return Controller */ public static function getInstance(): Controller { if (self::$instance === null) { self::$instance = new Controller(); } return self::$instance; } /** * Returns data provider by code * * @param string $code * @param array $setting * * @return ProviderBase|null */ public function get(string $code, array $setting = []): ?ProviderBase { $result = null; $class = self::ITEM_LIST[$code]; if ($class) { $result = $this->getProvider($class, $setting); } return $result; } private function getProvider(string $class, array $setting = []): ?ProviderBase { $result = null; if ($class && class_exists($class)) { $this->resetErrors(); try { $object = new $class($setting); if ($object instanceof ProviderBase) { $result = $object; } } catch (SystemException $error) { $this->setError($error->getCode(), $error->getMessage()); } } return $result; } private function __construct() { } private function __clone() { } private function setError($code, $message): void { $this->errorList[$code] = $message; } private function resetErrors(): bool { $this->errorList = []; return true; } public function listError(): array { return $this->errorList; } }