Ваня уже в целом ответил. Да, главные минусы сниппетов (а getResources (здесь и далее подразумевается и getProducts, так как getProducts - это модифицированный getResources) - это сниппеты), что они возвращают только строковые результаты и что их нельзя расширять и т.п. Плюс к этому я бы еще добавил кое что: 1. Рост кеша страницы. Сниппет и надо вызывать как сниппет, хоть он будет тегом прописан (и его потом MODX-парсер вызовет), хоть вы сами через $modx->runSnippet() вызовите. И прикол в том, что в любом случае кеш кода сниппета будет сложен в кеш страницы. В общих чертах про это писал здесь. В итоге даже при заходе на полностью кешированную страницу, даже если ничего выполняться не будет, инициируется довольно большой кеш-файл, который в итоге набивается в большой массив. А это потеря и времени, и ресурсов (в том числе памяти). 2. getResources оперирует объектами, в то время как getdata-процессор только данными. В итоге разница в скорости и ресурсах в разы. Правда здесь минус getdata-процессора - не учитываются права на запрашиваемые данные (то есть если делать выборку документов из раздела, в котором часть документов - привилегированные, getResources выдаст только доступные документы, а getdata-процессор все документы). Но это тоже лечится. Здесь же выполняются выборки с учетом прав. Есть еще всякие мелочи, но не буду глубоко копаться.

Вернуться к списку комментариев