Как стать автором
Обновить

Комментарии 16

Спасибо, давно ждали подробного описания новых вкусных возможностей pdoTools)
Спасибо большое! Как обычно кто-то, наверняка, заминусит. Тем более спасибо, что зная это написал большой пост.
Как обычно кто-то, наверняка, заминусит
Да как обычно завистники напишут: «а где циферки, которые показывают разницу скорости». Но Это ж только завистникам нужны циферки :) Ну и шаблоны… парсеры… PDO — как-то не сходится смысловой ряд, это тоже мелочь…
Специально для тебя обновил топик и добавил тестирование производительности.
А теперь, давайте немного усложним чанки
Зачем же «не много». Надо хорошенько усложнить. Это же не сложно.
И что, парсер MODX неожиданно вырвется вперёд? За счет чего, интересно?

Здесь нет зависимости от каких-то дополнений, это чистая шаблонизация. Парсер MODX разбирает теги и создаёт из них объекты xPDO, после чего запускает их метод process(). Сколько тегов на странице — столько будет и объектов.

Парсер pdoTools пытается обработать простейшие теги без объектов, а то что не смог — передаёт в modParser и дальше опять объекты. Отсюда уже выигрыш в скорости, и он никуда не денется, как ни усложняй.

Ну а Fenom и вовсе работает с объектом MODX почти напрямую, самостоятельно вызывая нужные методы. Здесь время тратится только на первую компиляцию чанка, а дальше уже чистый PHP.

Если можешь написать такой чанк, который быстрее будет обрабатываться родным парсером MODX, чем pdoTools — буду рад посмотреть.
Тогда смысла в тесте нет. Давай будем теоретизировать, результаты теста убирай.
Тест я уже провёл. Если у тебя есть в нём какие-то сомнения — проведи свой и покажи другие результаты.

Или ты как обычно, просто не можешь пропустить ни одной моей публикации на Хабре?
Вася, давай без обид. В хабе MODX очень редко появляются статьи. И все они мне интересны, не зависимо от автора. Сейчас ты протестировал скорость PHP, а не шаблонизатора. Главное в шаблонизаторе это работа со вcякими IF/ELSE.
Если всё, что ты сделал работает без танцев с бубном (как у аналогов), то это большой плюс. Как я понял так и есть. Идея очень хорошая. Вот только название поправишь на TplTools и буду всем советовать. Честно.
Вот что было в это комменте изначально:

Забавно вышло =)
Редактирование для таких случаев и придумали. Мы с тобой одновременно написали комментарии.
Скобки, скобки, скобки…
Перешел с modx на yii (для сложных проектов) и не нарадуюсь :)
тоже думаю иногда об этом переходе, можете кратко поделиться в чем выгода?
Можно переменную $_modx сделать глобальной $.modx что бы не заботиться о пробрасывании ее всюду. Не знаю где у вас храниться объект modx, но можно сделать через свойство самого шаблонизатора:
$fenom->modx = $modx;
$fenom->addAccessorSmart("modx", "modx", Fenom::ACCESSOR_PROPERTY);

тогда в шаблонах можно писать, причем доступно везде
{$.modx->getChunk('MyChunk@PropertySet')}

(доступно с версии 2.8.0)
Спасибо! Только мне кажется, что уже не стоит — чтобы людей не путать. Тем более, что профитов по скорости, скорее всего не будет — объект кэшируется в памяти.

Вся работа с Fenom происходит в одном месте и помимо {$_modx} там добавляется массив {$_pls}, плюс могут быть еще{$modx} и {$pdoTools}.

Наверное, здесь не всё оптимально, но в любом случае это гораздо быстрее работы с чанками MODX по умолчанию. Я уже молчу про более удобный синтаксис.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.