Для разработчиков

pdoParser против modParser

Третьего дня Сергей Шлоков провёл новый тест скорости работы парсера MODX и шаблонизаторов Fenom и Smarty.

До Smarty мне дела нет, но с итоговыми выводами, что никакой разницы в скорости между синтаксисом MODX и Fenom не видно, я категорически не согласен.



Итак, что нужно прояснить. У оригинального парсера MODX modParser есть две, на мой взгляд, фундаментальные проблемы:

Во-первых, каждый тег при разборе превращается в PHP объект modTag и в нём запускается метод process. То есть, если в чанке указан просто [[+id]], то MODX вместо обычной замены его через str_replace будет создавать новый объект и парсить.

Во-вторых, из-за своей рекурсивной природы, MODX выполняет все условия в чанках. Он просто не знает, во что могут превратиться эти условия на пятой, например, итерации. Причём делает он это изнутри наружу.
То есть, если вы прячете какой-то кусок оформления для вывода только нужным пользователям за условиями в чанке — именно этот кусок и будет первым делом разобран, а потом MODX решит, нужно ли его выводить, когда проверит условие с юзером. Народ придумывает разные костыли для обхода этого момента, чтобы парсить только нужное, типа [[![[+user:is=`admin`:then=`auth`:else=`guest`]]]].
Василий Наумкин
26 апреля 2022, 08:11
modx.pro
886
+27

Сравнение шаблонизаторов MODX, Fenom и Smarty



В очередной раз прочитав утверждение, что Fenom быстрее стандартного парсера, решил провести указанный в документации pdoTools тест, чтобы расставить все точки над и. Но решил сделать это не отдельными скриптами, как в документации, а практичнее — через сниппет, который будет вызыватся на странице. Плюс добавил для сравнения шаблонизатор Smarty из ZoomX. Так вот, у меня таки есть шо вам сказать.
Сергей Шлоков
23 апреля 2022, 10:52
modx.pro
1 442
+16

Кэширование элементов в ZoomX



ZoomX постепенно начинает набирать популярность. В связи с чем возникает ряд вопросов. Один из которых — кэширование элементов в шаблонизаторе Smarty. В принципе, по документации не сложно разобраться. Но, конечно, модыксерам хотелось бы работать так, как они привыкли. В этом плане Fenom из pdoTools реализован именно по этому принципу — для запрета кэширования в названии элемента указывается восклицательный знак. Всё привычно. Но работает не всегда.
Сергей Шлоков
17 апреля 2022, 12:38
modx.pro
2
370
+16

Использование MODX вне MODX3

Перевод заметки Using MODX Outside of MODX3

В одной из статей было рассмотрено создание экземпляра объекта $modx в эпоху до MODX3. В этой статье мы рассмотрим использование MODX вне MODX Revolution 3. Большая часть кода такая же, как и в предыдущей статье (прим. переводчика: предыдущая статья не переведена, так как немного не актуальна в рамках перехода на модх3). Основное отличие состоит в том, что MODX Revolution 3 широко использует пространства имен и имеет автозагрузчик для загрузки классов.
Евгений Webinmd
05 апреля 2022, 01:12
modx.pro
3
521
+14

Как подружить MODX и Smarty шаблоны в ZoomX

Статья неактуальна, в 3.4.2 автор поправил кэширование, теперь можно использовать статический шаблон и включать в него smarty-шаблон через include.

Сразу скажу, что с фреймворками не работал, поэтому возможно есть более оптимальное решение. Если знаете — напишите)

Сначала решил использовать статические элементы — в MODX-шаблоне прописывал путь до Smarty-шаблона. Но потом обнаружил, что в таких шаблонах сниппеты запускаются несколько раз. Из сниппета вывел в журнал ошибок $modx->resource — первый раз загружается нужный ресурс, а потом 2 раза загружается ресурс «страница не найдена». Причину так и не понял. Ещё обнаружил, что если у ресурса нет роута, то кэш Smarty не работает. Поэтому придумал такой костыль.
Лёша
17 марта 2022, 01:48
modx.pro
405
+1

Антология построения REST запросов внутри MODX - мой опыт

Это вводная статья для серии публикаций, посвященного удобному построению полноценного RESTfull API для любых целей.

Николай Савин
05 февраля 2022, 20:42
modx.pro
2
453
+19

Изучение потенциального спроса на курс по разработке современных распределённых приложений на PHP/JS

Ребят, вы меня наверняка знаете, как человека, который много времени потратил на улучшение MODX. Список моих выступлений вот тут, но список заслуг на это не заканчивается. Тем не менее, все это время я работал в разных компаниях и проектах, а последнее время и вовсе стал руководить целыми командами разработчиков.

Код я продолжаю писать, но уже меньше и не в тех объемах. Отставать в развитии от современной разработки не хочется. В больших состоявшихся проектах, как мой текущий рабочий, взять и использовать всё самое современное не всегда получается, или это занимает много времени. Внедряем конечно и в таких ситуациях, но не так быстро, как хотелось бы. Самое «вкусное» внутри заметки, потому что не уложился в 1000 знаков :)

Иван Климчук
26 января 2022, 13:05
modx.pro
789
+12

Разработка веб приложений. #2 - Backend, Express.

Первая статья — здесь.

Для начала — большое спасибо всем за то что приняли мою первую статью, было приятно. Ну а теперь вторая… :)

Frontend разработка штука конечно занятная и очень интересная, да и платят вкусно. Однако чем были хороши WP и MODx, так это готовой backend частью, на базе которой можно было на коленке собрать сайт почти любого типа. Мне очень не хотелось возвращаться к использованию CMS (про CMS будет в одной из следующих статей) и я решил внимательно изучить тренды backend индустрии для веб-приложений.
iWatchYouFromAfar
25 января 2022, 22:20
modx.pro
2
1 026
+20

Понимание addPackage, loadClass и getService

Перевод заметки Understanding addPackage, loadClass and getService
ВНИМАНИЕ! Актуально для MODx 2.*
Там на самом донышке пару строк про MODx 3 из официальной документации касательно данной темы

Повышайте свой уровень разработки на MODx. Присоединяйтесь к исследованию Боба (Bob Ray) о том, когда и зачем использовать каждый из трех методов загрузки классов MODX.
Евгений Webinmd
22 января 2022, 01:06
modx.pro
3
629
+14

Разработка веб приложений. #1 - Ушел с MODx - результаты.

Всем привет! Решил попробовать написать небольшой пул статей о моем опыте в индустрии Web-разработки за последние несколько лет. Постараюсь делать статейки максимально краткими и информативными, полная версия статей и их большее количество будут выложены позже на моем сайте.
iWatchYouFromAfar
20 января 2022, 18:50
modx.pro
1 046
+24