1PeGaS
@1PeGaS

Modx как инициализировать объект fenom в консоле?

Я хочу через консоль создать модификатор для fenom`a
Я знаю как сделать его через плагин и событие pdoToolsOnFenomInit

<?php
/** @var modX $modx */
switch ($modx->event->name) {
    case 'pdoToolsOnFenomInit':
        /** @var Fenom $fenom
            Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы. 
            Например, добавим модификатор вывода имени домена сайта из произвольной ссылки.
        */
        $fenom->addModifier('myModif', function ($input) {
            return ($input + 2);
        });
        break;
}


но сейчас нужно именно через консоль, я не могу получить объект fenom
Пробовал вот так, но ошибка

<?php
include 'core/components/pdotools/vendor/fenom/fenom/src/Fenom.php';
$fenom = new Fenom();

$fenom->addModifier('mymodif2', function ($input) {
    return ($input + 5);
});
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
ig0r74
@ig0r74
MODX-разработчик
Тебе нужно инициализировать pdoTools и потом уже использовать fenom:
<?php
/** @var array $scriptProperties */
/** @var pdoFetch $pdoFetch */
$fqn = $modx->getOption('pdoFetch.class', null, 'pdotools.pdofetch', true);
$path = $modx->getOption('pdofetch_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
if ($pdoClass = $modx->loadClass($fqn, $path, false, true)) {
    $pdoFetch = new $pdoClass($modx, $scriptProperties);
} else {
    return false;
}
$pdoFetch->addTime('pdoTools loaded');

Но сомневаюсь, что у тебя получится создать модификатор в консоли. Ты можешь создать его в плагине и потом использовать в консоли.
Если тебе это нужно для отладки, то пиши в журнал ошибок любую отладочную информацию из плагина:
$modx->log(1, 'test: ' . $test);
$modx->log(1, 'array: ' . print_r($array, 1));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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