Intereting Posts
документация для ключевого слова wordpress 3.7 jQuery Условные функции при заполнении полей ввода ACF Супер кеш Cron и WP в режиме предварительной загрузки Как выполнить запрос по роли пользователя? заполнить поля формы с помощью ajax-ответа Мой javascript jquery не будет работать? Добавить код css в admin_enqueue_scripts Выполнить более двух стилей CSS в дочерней теме functions.php Подсчитайте сообщения, в которых указан конкретный термин таксономии Предел абзаца WordPress При использовании get_terms и попытке упорядочить условия, используя «порядок» и / или «порядок», не работает Как изменить путь к дочерней странице? Несколько (две) категории на одной странице. Не удается войти в систему: «ОШИБКА: файлы cookie заблокированы или не поддерживаются вашим браузером. Вы должны включить файлы cookie для использования WordPress. " Покажите, что текущий пост – это номер X из X

Проблема пространства имен spl_autoload в администраторе WordPress

Я экспериментирую с пространством имен PHP в плагинах Worpdress. Плагин включает в себя файл загрузчика, который устанавливает функциональность spl_autoload, а затем создает экземпляр другого контроллера в зависимости от того, является ли текущий запрос страницы «is_admin ()» или нет.

[WP_PLUGIN_DIR] /lhes_experiment/loader.php

use lhes\system\controllers as sys; set_include_path('./wp-content/plugins/lhes_experiment/' . PATH_SEPARATOR . get_include_path()); spl_autoload_extensions(".php"); // comma-separated list spl_autoload_register( 'spl_autoload' ); $config = array( ... ); if( is_admin() ){ error_log( var_export( new sys\experiment( ), true ), 0 ); }else{ error_log( var_export( new sys\experiment( ), true ), 0 ); } 

[WP_PLUGIN_DIR] /lhes_experiment/lhes/system/controllers/experiment.php

 namespace lhes\system\controllers; class experiment extends test{ public $property; function __construct( ){ $this->property = 'owls'; } } 

[WP_PLUGIN_DIR] /lhes_experiment/lhes/system/controllers/test.php

 namespace lhes\system\controllers; class test{ public $test; function __construct( ){ $this->test = 'hi'; } } 

Когда запрос не является и администратором, код работает как ожидалось, и журнал ошибок показывает:

 [23-Jan-2013 12:55:27 UTC] lhes\system\controllers\experiment::__set_state(array( 'property' => 'owls', 'test' => 'hi', )) 

Однако, когда запрос относится к странице администратора, тот же самый код не работает:

 [23-Jan-2013 12:56:17 UTC] PHP Fatal error: Class 'lhes\system\controllers\test' not found in C:\Program Files (x86)\Zend\Apache2\htdocs\wp-content\plugins\lhes_experiment\lhes\system\controllers\experiment.php on line 4 

Я потратил много часов на поиски проблемы, но, похоже, ничего не нашел. Если у кого-нибудь есть идеи относительно того, почему это может произойти, я бы очень признателен за некоторые указатели.

Solutions Collecting From Web of "Проблема пространства имен spl_autoload в администраторе WordPress"