Как добавить запуск своего класса/метода агентом в 1с-Битрикс?

создал автозагрузчик local/php_interface/autoload.php

в нем:
\Bitrix\Main\Loader::registerAutoLoadClasses(null, [
    'lib\Shop' => '/local/php_interface/lib/Shop.php'
]);


вinit.php добавил

<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/autoload.php');
?>


Сам файл /local/php_interface/lib/Shop.php
namespace lib;
class Shop
{
    public static function someMethod()
    {
        AddMessage2Log(' агент по крону / с данными ');
         return "someMethod();";
    }
}


Если создать страницу и написать
echo \lib\Shop::someMethod();

то все отработает как ожидается.

Но если тоже засунуть в крон
https://disk.yandex.ru/i/qSnahXRaJW0TGA

то ничего не отрабатывает
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron
Работаю с Bitrix24
Если вы прописали в php_interface/init.php (а не в конкретный сайт), при этом если он не перекрывается другим init.php то все должно работать с точки зрения подключения классов.

Однако метод агента должен возвращать строку - либо php-код (полное название функции) следующего агента, либо ничего - у вас же дальше будет "eval("агент");" что вызовет ошибку php.

Смотрите логи httpd и php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы