Закрыть
Скидки в Webasyst 25–29 ноября 2021

Как узнать все доступные методы?

Задача:

Понадобилось в плагине получить имя текущего пользователя бекенда.


Процесс поиска решения задачи:

Буквально в соседней строчке был код:

wa()->getUser()->getId();

Решил его скопировать, немного изменить методом тыка и получил практически то что мне нужно (код ниже вернул не только имя, но "имя-фамилия", а мне нужно именно "имя"):

wa()->getUser()->getName();

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

wa()->getUser()->getFirstName();


Вопрос:

а могу ли я прямо в коде заранее узнать какие есть доступные методы, чтобы не тыкать наугад, и не идти открывать документацию? Например, что-то такое:

wa_dump(wa()->getUser());

и чтобы вернуло:

//getId()
//getName()
//getLocale()
//итд

4 ответа

  • 1
    chikurov-seo 6 июля 2021 19:25 #

    если что, стоящую задачу решил вот так:

    $manager_id = wa()->getUser()->getId();
    $contact = new waContact($manager_id);
    $manager_name = $contact->get('firstname');

    Но опять же, о возможности прописать параметр 'firstname' у метода get не знал, тыкался наугад. А как должен был действовать? 

    • +1
      Николай Иванов Николай Иванов 7 июля 2021 07:33 #

      Смотреть документацию(см.ссылку Алексея) и по необходимости публичные методы классов-хэлперов(waViewHelper, shopViewHelper и пр *ViewHelper) и классов объектов(waContact, shopProduct...). Например waViewHelper предоставляет публичный метод user()

      public function user($field = null, $format = 'html')

      $field - соотв. поле таблицы контакта(name,firstname,lastname etc.).

  • 1
    Алексей Webasyst 6 июля 2021 21:29 #

    Посмотрите https://developers.webasyst.ru...
    Если узнать методы класса, то это стандартные методы https://www.php.net/manual/ru/...

    • +1
      chikurov-seo chikurov-seo 9 июля 2021 18:11 #

      Если узнать методы класса, то это стандартные методы https://www.php.net/manual/ru/...

      то что надо, спасибо

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите