Использование своих классов при создании плагина Есть решение

Добрый день.

Понадобилось вынести данные в отдельный класс  в плагине и столкнулся с ошибкой при его вызове "Class  not found"

Далее для теста создал тестовый плагин 

1. при вызове адреса site.ru/test/query/ вызывается

\wa-apps\shop\plugins\test\lib\actions\shopTestPluginFrontend.actions.php 

с содержимым

class shopTestPluginFrontendActions extends waActions {    
 public function queryAction()    {        
    echo '123';         
    }
 }

Все работает.

2. Создаем класс 

\wa-apps\shop\plugins\test\lib\classes\shopTestUser.class.php

с содержимым

class shopTestUser
{
    static function test(){
        return '123';
    }
}

3. В экшене меняем на вызов класса

class shopTestPluginFrontendActions extends waActions {    
 public function queryAction()    {        
    echo shopTestUser::test();       
    }
 }

выходит ошибка.

Ткните меня носом пожалуйста, что пропустил.

6 ответов

  • 1
    waResearchLab 13 ноября 2018 16:24 #

    Видимо, в названии файла/класса проблема. Не хватает Plugin

    shopTestPluginUser.class.php
      class shopTestPluginUser {
        ...
        ...
      }

    • +1
      code2003 code2003 13 ноября 2018 16:56 #

      К сожалению не сработало

      Файл shopTestPluginUser.class.php
      Содержание

      class shopTestPluginUser
      {
          static function test(){
              return '123';
          }
      }

      Обратил внимание на другие плагины

      Не везде используется в названии и файле Plugin

      Это меня и смутило т.е. в документации нет строгих правил по названию и у других разработчиков тоже по разному


      • +1
        enso_studio@mail.ru enso_studio@mail.ru 14 ноября 2018 03:57 #

        class shopTestPluginUser
        {
            /**
             * shopTestPluginUser::test();
             */
            public static function test()
            {
                return '123';
            }
        }

        • +1
          code2003 code2003 14 ноября 2018 09:23 #

          Как ожидалось это не работает. Поскольку там проблема не конкретного метода, а класса в целом.

          Можно даже оставить класс пустым и в экшене вызвать 

          new shopTestPluginUser();

          Будет аналогичная ошибка.

  • 1
    Александр Тарасенко 14 ноября 2018 10:39 # Решение

    Сбросьте кеш

    • +1
      code2003 code2003 14 ноября 2018 10:49 #

      Благодарю !

      Все заработало. мой вариант был изначально рабочий.

      Даже не подумал про кеш.

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

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