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
Нет, не похоже. Новый запрос создать я и без этого могу. modx->newQquery(q->select(array( 'col1', 'col2', 'col3 as col 4', )); Таблицу приджоинить? Да хоть q->innerJoin(). Как мне будет угодно. Условия добавить??? Так оно всегда там было. 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 свои суешь. В итоге ни ты, ни они самого ядра не знают. Могу легко по каждому твоему дополнению проехаться. А что ты там про контексты в своем гибридаусе нес, так я вообще ржал. Только ты ничего не ответил. А жаль…