Короче, возникла тут нужда потыкать палкой это поделие великихъ кодеровъ. Долго не мог разговаривать без использования исконно русских слов и выражений. Теперь к сути.
Modx не выполняет непосредственно код из сниппета, даже если Вы запихнули его в админку как статический файл. Вместо этого он перекладывает код в кэш и уже затем выполняет его. Соответственно, чтобы при использовании xDebug точки остановы устанавливать в исходнике, а не в неясном кэше, пришлось писать костыль.
Автор не несёт ответственности за кровь из глаз, которая может пойти, если долго смотреть на фрагмент ниже.
#где-то в файле index.php - так проще всего function enableXDebug(): string { return 'if(false === strpos(__FILE__, realpath($this->_sourceFile))){ ' . 'include($this->_sourceFile); return;' . '}'; }
Затем в самом начале отлаживаемого сниппета вызываем функцию
<?php eval(enableXDebug()); //...тут ваш сниппет
Не за что.
P.S. Кто молодец, может переписать красивше и добавить проверки на наличие/включённость xDebug, мне лень. Все равно штука на 95% для локальной разработки.