Ejemplo n.º 1
0
/*
 * wordpress - Классы окружения, когда ps-sdk работает, как wordpress plugin.
 * Нужно учитывать, что ps-sdk может быть вызван после подключения классов 
 * wordpress (например при построении страницы, когда подключаются плагины) или до этого
 */
if (PsUtil::isWordPress()) {
    /*
     * Мы уже работаем как часть WordPress, ничего делать не нужно.
     * Классы src подключатся автоматически.
     */
    $LOGGER->info('WordPress is already loaded, skip including...');
    //Нужно подключить данный класс, так как он подключается после пагинов
    //Код подключения находится в файле /wp-settings.php
    require_once ABSPATH . WPINC . '/pluggable.php';
} else {
    /*
     * Нас вызвали раньше wordpress. Это может быть процесс, или ajax, или ещё что-либо.
     * Необходимо проанализировать контекст выполнения, нужно ли подключить ядро.
     */
    $wpInc = PATH_BASE_DIR . 'wp-load.php';
    $LOGGER->info('WordPress is not loaded yet, include wp core \'{}\'', $wpInc);
    if (is_file($wpInc)) {
        require_once $wpInc;
    } else {
        PsUtil::raise('WordPress core file not found, environment cannot be loaded.');
    }
}
//Установим специальный провайдер безопасности
PsSecurity::set(new PsSecurityProviderWp());
Ejemplo n.º 2
0
/*
 * Подключим обработчик эксепшенов. Позднее мы подключим "красивый" обработчик ошибок.
 */
ExceptionHandler::register();
/*
 * Подключим загрузчик служебных классов
 */
Autoload::inst()->register();
/*
 * Если мы работаем под процессом - не подключаемся автоматически к DB и используем специальный провайдер безопасности
 */
if (PsContext::isCmd()) {
    /*
     * Установим специальный провайдер безопасности для консольного процесса
     */
    PsSecurity::set(new PsSecurityProviderCmd());
} else {
    /*
     * Автоматически подключаемся к БД
     */
    PsConnectionPool::configure(PsConnectionParams::production());
}
/*
 * Инициализируем окружение, если мы работаем под ним.
 * Подключаемое окружение может установить свой провайдер безопасности.
 * Важно! Вызов не перемещать в if, так как метод init должен быть вызван обязательно.
 */
PsEnvironment::init();
/*
 * Инициализируем подсистему безопасности
 */