pdoTools безумкина. Гений или блеф?

Пишу чисто свое ИМХО. Тем не менее зная, что здесь есть довольно опытные уже MODX-программисты (именно программисты, а не расставлятели MODX-тегов), предлагаю обсудить «творение» небезызвестного безумкина, тем более что он вот опять похвастался своей неповторимой разработкой, но вот почему-то на диалог не идет никак… В твиттере тоже не отвечает. Думаете просто считаете выше своего достоинства вступать в споры? Нет, ни в коем случае. С теми, кому он может сказать «ты тупой и ничего не понимаешь, иди отсюда» — это он всегда запросто. И со мной он по началу так пытался разговаривать, когда я ему начал говорить, что у него минусов полно в его разработках. Но после пары предметных споров, как вот здесь, к примеру: community.modx-cms.ru/blog/addons/9892.html, он что-то совсем перестал в диалог вступать. Видимо, совсем не любит чувствовать себя не умнее всех.

Так вот, публикую я здесь свой ответ с хабра (ибо в нем сказал примерно все, что хотел (точнее мог написать)), и предлагаю всем, у кого есть мнение, высказаться. Я не призываю поддержать мою точку зрения. Нет. Я готов и противоположную выслушать, вдруг я не прав на счет указанных технологий.

Вы меня спросите почему я так взъелся? Я скажу: он наносит вред сообществу. Вместо того, чтобы направлять молодых учить сам MODX, он их направляет учить свой аналог, который как я и утверждаю, очень далек от совершенства.

Под катом дублирую свой ответ и жду ваших комментариев. Этот, я думаю, все равно не выйдет за свое высказаться.

Мой ответ с хабра.

И вот опять вот эта ахинея… «Мое прелестное дополнение»…

Это не просто твое прелестное дополнение. Это самое великое из того, что ты сделал — самый великий блеф! Тебе по прежнему удается простачков дурачить тем, что ты офигенный компонент написал и много-много его дорабатываешь. И многие верят (не хватает же мозгов проверить). И главное — сколько уже ты на него из СимплДрима денег вытянул? :-) Ведь тебе оплачивается твое рабочее время.

Ну чтож, давай разберем, что это у тебя за чудо такое неведомое разработано.

Итак, по началу это вообще выдавалось как «альтернатива xPDO». Одна из ссылок: http://it-folio.ru/forum/index.php?topic=663.0 ШТОА?? Была моя реакция. Какое нафиг без xPDO? Лезем в код: https://github.com/bezumkin/pdoTools/blob/master/core/components/pdotools/model/pdotools/pdofetch.class.php#L9 И что там видим?

protected $query;

И там еще не мало xPDO по всему компоненту.

В общем, это никакая не замена xPDO (хорошо хоть давно уже перестал это говорить, понял, что ляпнул не подумавши). Это простой синтаксический сахар, при чем не просто сомнительный, а конкретно ничего под собой не имеющий. Сейчас поясню.

Следите за руками, что нам предлагается: чтобы у вас все быстрее работало, ставьте мою чудо-тулзу, и у вас все будет супер-быстро работать!

Так ли это? Лично меня никак не может убедить в этом тот факт, что вместо того, чтобы просто выполнять $modx->newQuery(), мне надо сделать:

Библиотека подключается через modX::getService() вот так:

// Если нам нужны только основные функции
$pdo = $modx->getService('pdoTools');
// Если нам нужна работа с БД
$pdo = $modx->getService('pdoFetch');

При этом это не 10 строчек. Это 835 строк здесь: https://github.com/bezumkin/pdoTools/blob/master/core/components/pdotools/model/pdotools/pdotools.class.php и 940 строчек здесь: https://github.com/bezumkin/pdoTools/blob/master/core/components/pdotools/model/pdotools/pdofetch.class.php

Но может оно того стоит? Может там что-то есть то, чего нет в ядре? Ведь вон сколько функций сразу выполняется: https://github.com/bezumkin/pdoTools/blob/master/core/components/pdotools/model/pdotools/pdofetch.class.php#L61

И это при том, что весь класс xPDOQuery в ядре — 885 строчек: https://github.com/modxcms/revolution/blob/develop/core/xpdo/om/xpdoquery.class.php

Нет, не похоже. Новый запрос создать я и без этого могу. q=q = modx->newQquery(className);Колонкиуказатьизвлекаемые?Невопрос—className); Колонки указать извлекаемые? Не вопрос — q->select(array( 'col1', 'col2', 'col3 as col 4', )); Таблицу приджоинить? Да хоть q>leftJoin(),хотьq->leftJoin(), хоть q->innerJoin(). Как мне будет угодно. Условия добавить??? Так оно всегда там было. q>where(q->where(cond); К слову, а в pdoTools условия появились совсем недавно: http://bezumkin.ru/sections/components/1931/

Вася, ну ты уже сразу расскажи, о чем умолчал, чего еще не хватает? Там же много еще минусов есть, а? Может ты все-таки расскажешь, что pdoTools не проверяют права доступов, к примеру?

И вот теперь главное — а нафига все это изучать, когда можно изучать едро? Нафига вот так вот переписывать всю систему?

Я вот знаю. Потому что xPDO имеет фатальный недостаток (lurkmore.to/Фатальный_недостаток) — его писал не Вася.

А еще у него 100500 изменений в компонентах, и не забывайте у себя все по гиту сводить…

Ну быть может у него действительно с производительностью все классно, а? Ведь пишет: >> Как вам вывод 2012 страниц сайта за полсекунды?

Ну давай сравним твое творение с вот этим небольшим кодом:

$q = $modx->newQuery('modResource');
$q->select(array(
 «id», 
 «uri», 
 «pagetitle», 
 «content», 
));
$q->limit(2012);
$s = $q->prepare();
$s->execute();
$i = 1;
while($row = $s->fetch(PDO::FETCH_ASSOC)){
 $str = "$i"; 
 $str .= "{$row['pagetitle']}";
 print $str;
 $i++;
}

Тоже 2012 документов. 0,0165 сек. http://awesomescreenshot.com/0a01vmb228 При этом 7 мегабайт, а не 18 как у тебя.

А быть может ты скажешь, что я не умею программировать и наговариваю на тебя? Ну как бы готов поспорить…

А вот начальство твое в СимплДрим не умеют программировать, поэтому у тебя и получается им ездить по ушам. Поэтому они тебе и платят по прежнему деньги за твои «чудо разработки» :-)

Но не это плохо. Плохо, что ты начинающих программистов не по тому пути направляешь. Нет, чтобы лучше ядро изучать и их направлять на это, ты им pdoTools свои суешь. В итоге ни ты, ни они самого ядра не знают. Могу легко по каждому твоему дополнению проехаться. А что ты там про контексты в своем гибридаусе нес, так я вообще ржал. Только ты ничего не ответил. А жаль…