Создание большого количества документов в MODX Revo?
Нашел решение, очень быстро работает. У меня получилось так:

    $table = $modx->getTableName('modResource');
$sql = "INSERT INTO {$table} (pagetitle, longtitle, menutitle, alias, parent, isfolder, template, published, hidemenu, content, createdby, createdon, editedby,	editedon) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$q = $modx->prepare($sql);
$q->bindValue(1, $line['pagetitle']);
$q->bindValue(2, $line['longtitle']);
$q->bindValue(3, $line['menutitle']);
$q->bindValue(4, $line['alias']);
$q->bindValue(5, $line['parent']);
$q->bindValue(6, $line['isfolder']);
$q->bindValue(7, $line['template']);
$q->bindValue(8, '1');
$q->bindValue(9, $line['hidemenu']);
$q->bindValue(10, $line['content']);
$q->bindValue(11, 1);
$q->bindValue(12, date());
$q->bindValue(13, 1);
$q->bindValue(14, date());
$q->execute();

Спасибо интернетам:
forums.modx.com/thread/71759/populate-large-data-in-xpdo-solved
Никогда не работал с MODx, но задача мне близка.
На мой взгляд у вас есть два варианта:

 — Увеличить время работы скрипта (set_time_limit) дабы не было рамок во времени. Возможно скрипту так же не хватает памяти, я работал с похожей проблемой на Kohana и Doctrine в качестве ORM, катастрафически не хватало памяти (ini_set('memory_limit', '512M'))

 — Все делать «ручками» и писать «голые» SQL запросы к базе. Минусов в этом варианте море — от большего шанса ошибиться до потери большого количества времени на разбор структуры и связей в базе.