/** * Метод возвращает экземпляр класса-хранилища страниц. * Для переопределения этого класса, на уровне проектного config.ini * должен быть задан другой класс. * * @return WebPagesStorage */ public static final function inst() { if (isset(self::$inst)) { return self::$inst; //---- } /* * Получим название класса */ $class = ConfigIni::webPagesStore(); /* * Класс совпадает с базовым */ if (__CLASS__ == $class) { return self::$inst = new WebPagesStorage(); } /* * Нам передан класс, который отличается от SDK */ $classPath = Autoload::inst()->getClassPath($class); if (!PsCheck::isNotEmptyString($classPath)) { return PsUtil::raise('Не удалось найти класс регистрации web страниц [{}]', $class); } /* * Указанный класс должен быть наследником данного */ if (!PsUtil::isInstanceOf($class, __CLASS__)) { return PsUtil::raise('Указанный класс регистрации web страниц [{}] не является наследником класса [{}]', $class, __CLASS__); } return self::$inst = new $class(); }