2016-08-27 2 views
1

Можно ли вызвать метод в другом пространстве имен в PHP? Если да, то как?Как вызвать метод в другом пространстве имен

Я пытаюсь написать плагин WordPress. Для соблюдения лучших практик я инкапсулирую свой код в свое собственное пространство имен, чтобы предотвратить конфликты. Однако, когда я пытаюсь вызвать функцию wp_get_current_user(), я получаю сообщение об ошибке:

Fatal error: Uncaught Error: Call to undefined function sln\wp_get_current_user() 

отрывок из моего кода:

<?php 

Namespace sln; 

class SimpleLoginNotifications { 


    function __construct() { 

     $user_data = wp_get_current_user(); 

     add_action('wp_login', 'sln_send_login_notification'); 

    } 


[...] 


?> 
+1

вы должны начинать с корня с \, а затем пространство имен –

ответ

1

При объявлении имен sln в файле, все функции/методы/константы/классы предполагается в этом пространстве имен. Поэтому, если wp_get_current_user() не объявлен в пространстве имен sln, вам нужно позвонить ему, используя его полное имя или import via use в верхней части вашего скрипта. Если он находится в глобальном пространстве имен, тогда вам нужно получить его с помощью обратной косой черты \wp_get_current_user().

Смежные вопросы