newQuery, select и getCollection

Apr 12, 2015

Народ, ткнити носом, если обсуждалось. Вообще даже не знаю, стоит ли спрашивать. Но это реально меня напрягает в переходе на процессоры. Хотя возможно, тут психоаналитик нужен, а не программистов совет. Я привык делать запрос вот таким образом q=q=modx->newQuery('MyClass');

$q->select(array( 'id', 'json', ));

$q->prepare();

//- fetchAll

q>stmt>execute();q->stmt->execute(); res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

foreach (resasres as k=>v) { print_r(v); }

// //- getCollection

// res=res = modx->getCollection('MyClass', $q);

// foreach (resasres as k=>v) { // print_r(v->toArray()); // } Обратите внимание на q>select.Вслучаи,еслиязакомментируюполучениерезультатовчерезfetchAllивоспользуюсьq->select. В случаи, если я закомментирую получение результатов через fetchAll и воспользуюсь modx->getCollection, то применение select лишено смысла, я получаю объект с переводом в массив методом toArray(), что на выходе дает множество совершенно ненужных мне параметров. Это непривычно, немного осложняет работу и вообще, зачем получать данные, которые тебе не нужны? Не, может это вопрос привычки конечно. Но насколько я понимаю, в процессорах, если я наследую стандартный процессор modx, которые здесь лежат, то я не могу использовать fetchAll в getData? Просто нигде так не делается и в процессоре могут быть функции, которые ожидают получить именно объект data=data = this->getData(); list=list = this->iterate(data);Нухорошо,допустимявpublicfunctionprocess()внаследникеmodObjectGetListProcessorпереопределил,чтонетутамiterate(data); Ну хорошо, допустим я в public function process() в наследнике modObjectGetListProcessor переопределил, что нету там iterate(data) и никто не ждет объект. Так наверное не по-феншую делать? А по-другому же не ограничишь данные на выходе тем, что в select? Короче, я в сомнениях весь. Прям как девочка.