Как вызвать функцию внутри плагина

Я создал свой плагин по документации https://developers.webasyst.ru...

Внутри файла shop[Name]Plugin.class.php

Создал две функции 

<?php

class shop[name]Plugin extends shopPlugin {

  
  public function one() {
    return $this->two();
  }
  
  public function two() {
    return "test";
  }

}

Теперь при вызове плагина в шаблоне бэкенда

{shop[name]Plugin::one()}

Просто белый экран

Если я вывожу текст в function one то все работает, но когда пытаюсь вызвать внутри другую функции все падает

Дэбаг режим включил, все равно белый экран и вывода ошибки нет

Какое может быть решение? или где почитать можно про это?
Не нашел в документации про то как подключать кастомные css/js или использовать функции которые в том же файле

4 ответа

  • 3
    BNP (Дмитрий) 9 июня 2022 15:09 #

    Почитать про php наверное ....

    {shop[name]Plugin::one()}

    это вызов статического метода класса. Т.е. по правильному в классе вы его должны задать как public static function one

    Дальше в статическом методе идет

    $this->two();
    

    но в статическом методе НЕТ и не может быть $this ...

  • 3
    Koin 9 июня 2022 15:49 #

    лучше начать в плагин использовать хелперы

    тут описано

    https://developers.webasyst.ru...

    плюсы там описаны по сравнению со статик методами

  • 1
    kv0s3r 4 июля 2022 00:35 #

    либо попробуйте так

    (new shop[name]Plugin)->one();

    или так

    $plugin = new shop[name]Plugin();

    $plugin->one();

    • +1
      Nichikov Eugen Nichikov Eugen 4 июля 2022 08:19 #

      не надо так пробовать)

      Если соблюдать нейминг из поста, выйдет так

      $plugin = wa('shop')->getPlugin('[name]');
      $plugin->one();
      

      где id плагина должен указываться без квадратных скобок.

Эта тема в архиве. Добавление комментариев к ней отключено.