Новая задача для Cron, новый плагин

Пробую делать задачу для cron, для автоматического формирования yml. Сделал /www/wa-apps/shop/lib/cli/shopYandexmarketCron.cli.php

в нем:

class shopYandexmarketCron extends waCliController

{ public function execute()

{ echo "Hello world!"; } }



и по php cli.php shop YandexmarketCron не запускается.



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

/wa-apps/shop/plugins/yandexmarket2/lib/shopYandexmarket2.plugin.php

в нем:

class shopYandexmarketPlugin2 extends shopPlugin

{}



/wa-apps/shop/plugins/yandexmarket2/lib/config/plugin.php

return array(

'name' => 'Yandex Market 2',

'img' => 'img/yandexmarket.png',

'vendor' => 'webasyst',

'version' => '1.0.0',

'importexport' => true,

'plugin_id' => true,

'frontend' => true,

'handlers' => array(

),

);




но его нигде не видно, что-то я упустил?



спасибо

10 ответов

  • 1
    Леонид Вакуленко Webasyst 30 октября 2013 00:58 #
    Про контроллер: класс должен называться shopYandexmarketCronCli

    Про плагин:
    1) Включите его в wa-config/apps/shop/plugins.php
    2) Но даже включённый плагин нигде не будет видно, если он ничего не делает. Разве что инсталлер его покажет, но и тут не уверен - он же не через магазин поставлен.
    Если хотите увидеть какой-нибудь эффект, подпишитесь на хук и выведете что-нибудь в браузер.
    • 0
      Леонид Вакуленко Леонид Вакуленко Webasyst 30 октября 2013 01:10 #
      А нет, включённый плагин, оказывается, виден на странице "Плагины" в Магазине, даже если ничего не делает.
    • 0
      aleksey aleksey 30 октября 2013 07:23 #
      класс переименовал, по указанной команде "Hello world!" не выводится, только пустая строка, по крайней мере не 404 :) .
      • 0
        Леонид Вакуленко Леонид Вакуленко Webasyst 30 октября 2013 10:16 #
        Всё остальное похоже на правду. Ради эксперимента сделал такой же файл у себя - выводит Hello, World.

        Если echo заменить на die('...'), выведет? А если добавить такой же die() в начале shopFollowupCli и запустить shop followup? А если добавить waLog::log('Hello, World!', 'hello.log'); появится ли wa-log/hello.log? Короче, копаться надо :)
        • 0
          aleksey aleksey 31 октября 2013 08:25 #
          c die не выводится, hello.log не создается, а через shopFollowupCli - выводится ... я не против покапаться, пока изучаю способы :)
        • 0
          Леонид Вакуленко Леонид Вакуленко Webasyst 31 октября 2013 08:36 #
          Подключается ли файл? Т.е. die или echo вне класса.

          Я придумал две причины, как может быть, что класс найден, а метод не выполняется.

          Первая - это если там опечатка в названии метода execute(). Совсем из разряда фантастики - русская e или с.

          Вторая - если в приложении есть второй файл с таким же названием и классом, но в другом каталоге. Вполне может быть, что вместо этого подключается тот, другой.
          • 0
            aleksey aleksey 6 ноября 2013 06:57 #
            да действительно, понаделал одинаковые файлы в shop/lib/cli, shop/plugins/yandexmarket/lib/cli. после удаления лишних и очистки кеша, все работает :)
  • 0
    aleksey 30 октября 2013 04:40 #
    спасибо, помогло, только после включения плагина и обновления кеша сайт перестал открываться. В чем может быть дело?
  • 0
    Владимир 12 декабря 2013 11:24 #
    А есть уже платный плагин?

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

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