В настоящее время я создаю плагин Wordpress для клиента, и у меня возникают некоторые проблемы с доступом к переменным и объектам, которые создаются вне функции изнутри функции. Например, это мой код:
// Include files:
require_once('classes/panel.inc.php');
$panel = new AdminPanel();
// Actions & Options:
add_action('admin_menu', 'configurePages');
// Configure pages:
function configurePages(){
// Boats:
add_menu_page(__('Båtar','admin-main'), __('Båtar','boats'), 'manage_options', 'boats', array($panel, 'displayBoatManager'));
add_submenu_page('boats', __('Sök båtar','search-boats'), __('Sök objekt','search-boats'), 'manage_options', 'search-boats', array($panel, 'displayBoatSearch'));
add_submenu_page('boats', __('Hantera utrustning','manage-equipment'), __('Hantera utrustning','manage-equipment'), 'manage_options', 'manage-equipment', array($panel, 'displayEquipmentManager'));
// Customers:
add_menu_page(__('Kunder','admin-main'), __('Kunder','boats'), 'manage_options', 'customers', array($panel, 'displayCustomerManager'));
add_submenu_page('customers', __('Sök kunder','search-customers'), __('Sök kunder','search-customers'), 'manage_options', 'search-customers', array($panel, 'displayCustomerSearch'));
}
Как вы можете видеть, я уже создал объект панели, и если я выгружаю содержимое перед функцией, я получаю правильный вывод. Тем не менее, все страницы жалуются, что панель не является допустимой переменной или объектом. Что может быть причиной этого?
Я могу решить это простым добавлением:
require_once('classes/panel.inc.php');
$panel = new AdminPanel();
Внутри функции configurePages. Но я не должен был этого делать.
У меня та же проблема с включениями, они просто не распознаются внутри функций. Я был бы очень рад, если бы кто-то мог поделиться некоторой проницательностью в этом вопросе и возможно, как решить его.
Заранее спасибо! //
Jonathan