Большая статья про pdoParser
В связи с большим обновлением pdoTools, я попытался собрать всю информацию о работе его парсера и опубликовал её на Хабре. Это очередная попытка немного реанимировать тамошний хаб MODX.
Конечно, эта информация никак не могла пройти мимо нашей документации, так что можно читать её там.
Надеюсь, хоть теперь вопросов «а как это использовать» станет поменьше, потому что информации и примеров просто огромное количество.
Если найдётся желающий перевести этот текст из документации на нормальный английский — назовите цену, я готов оплатить в разумных пределах.
Хотя, судя по реакции, англоязычному сообществу это не особо интересно.
Народ летает в облаках, обсуждает MODX 3, учит Slim и вообще непонятно, какое они все имеют отношение к MODX.

Скорость неважна, понятно? Код должен быть правильным и красивым, а как он работает дело второе. Именно такой у нас getResources — правильный весь и тормозной.
Именно поэтому MODX 3, обещанный к выходу еще в 2013 году, сегодня только обсуждается в чатиках.
Делаю вывод, в который уже раз, что на западное сообщество ориентироваться не стоит. Каких-то переводов документации, тем более, писать не следует — пусть учат русский.
P.S. История чата сохраняется ненадолго, так что прикладываю скрины беседы, для истории.
Конечно, эта информация никак не могла пройти мимо нашей документации, так что можно читать её там.
Надеюсь, хоть теперь вопросов «а как это использовать» станет поменьше, потому что информации и примеров просто огромное количество.
Хотя, судя по реакции, англоязычному сообществу это не особо интересно.
Обновлено 13.08.2015
Пообщался еще раз в чатике на эту тему и вывод неутешительный. С какой скоростью работает MODX, насколько удобно использовать его теги — никому неинтересно.Народ летает в облаках, обсуждает MODX 3, учит Slim и вообще непонятно, какое они все имеют отношение к MODX.

Скорость неважна, понятно? Код должен быть правильным и красивым, а как он работает дело второе. Именно такой у нас getResources — правильный весь и тормозной.
Именно поэтому MODX 3, обещанный к выходу еще в 2013 году, сегодня только обсуждается в чатиках.
Делаю вывод, в который уже раз, что на западное сообщество ориентироваться не стоит. Каких-то переводов документации, тем более, писать не следует — пусть учат русский.
P.S. История чата сохраняется ненадолго, так что прикладываю скрины беседы, для истории.
Комментарии: 57
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
А где можно почитать реакцию в англоязычном сообществе?
Посмотри на Tickets — 28 чанков, miniShop2 — 25 чанков. Использование нормального синтаксиса позволило бы сократить их минимум раза в 2.
Реакцию можно почитать вот здесь (скриншот добавил в новость), только её, как бы и нет. Всем реально пофиг, давайте лучше в тысячный раз пофантазируем о MODX 3.
Зачем осваивать что-то новое, нужно просто встречаться со всеми и рассказывать им про тормозные getResources, Wayfinder и Articles.
Вернул обратно предложение о переводе. Какие они ни есть, всё же нужно им рассказывать о наших наработках.
Fi1osofНапример, при выводе комментариев нужно:
— чанк обёртка всего блока с комментами
— чанк формы комментирования
— чанк комментария для авторизованного юзера
— чанк комментария для гостя
— чанк удалённого комментария
С использованием Fenom (или другого нормального шаблонизатора) я могу сделать это всё в одном чанке.
Точнее, я это уже сделал на kg-portal.ru, где сейчас комментарии выводятся через xPDO + Fenom и всё оформление в одном шаблоне. Ведь это намного проще — изменить один чанк, вместо двух или трёх!
Я уже молчу о том, что сейчас в Tickets дофига лишней логики тупо из-за ограничений синтаксиса. Например — вот здесь выставляются лишние плейсхолдеры только ради того, чтобы чанк быстро парсился без фильтров MODX.
Тем печальнее, что никого в англоязычном сообществе это, похоже, не волнует. Ни скорость работы, ни удобство — они о 3й версии мечтают, без перерывов на обед.
Fi1osofЭто шаблон-обертка: outer.tpl. Здесь в цикле комментарии набиваются в конечные шаблоны. Конечный шаблон комментария inner.tpl. Как видно, здесь не только условия различные можно прописать, но и проверку прав пользователя и прочие прелести. К слову, если у комментария есть дочерние комментарии, мы опять вызываем outer.tpl, то есть цикличность и вложенность здесь без проблем, с переопределением переменных, областями видимости и т.п. (многое как в обычном php). А вот это уже расширяющий inner.tpl. Суть его в том, чтобы взять исходный шаблон комментария, и изменить какие-то отдельные части этого шаблона (не переписывая его весь).
Вот без этого просто не знаю как жить. Это есть (и в феноме, и в твиге (правда не знаю на сколько прокаченно, так как есть весьма специфические задачи с блоками и вполне допустимы логические и технические ошибки)), есть ив смарти. Но этого нет в modParser.
Аминь.
Fi1osofНо я не думаю, что следует требовать от них этого. К примеру, вряд ли я был бы рад, если бы они феном в ядро пульнули, а ты вряд ли, если бы смарти. Так что лично меня вполне устраивает, что MODX позволяет прикрутить ту систему шаблонизации, которая больше нравится. Это и демонстрирует его силу. Но вот общие навыки и технологии у сообщества развивать следует. Ведь и в феноме, и в смарти, и в твиге и остальных — принципы примерно одинаковые. Синтаксис только отличается. Но эти принципы сильно отличаются от принципов MODX-а. К примеру, я до сих пор некешируемые части шаблона вызываю через некешируемый [[!smarty?tpl=`path...`¶ms...]] (или {snippet name=smarty params=$params as_tag=1}). Иначе просто никак. И вот все эти тонкости требуют довольно тщательного изучение (то есть порог вхождения все-таки више, чем на чистом MODX-парсере). Но если освоить принципы на одном шаблонизаторе, то тогда уже свободно можно будет разобраться и с другим шаблонизатором. И может даже какие-то стандарты выработать. К примеру, в том же компоненте EdinayaKassa у меня идет папка с шаблонами (хотя в ней всего один шаблон). В конечном шаблоне я подключаю папку шаблонов модуля, а в сниппете идет вызов шаблона модуля без указания папки. Smarty перебирает все папки шаблонов в поисках указанного файла и какой первый найдет — такой и заюзает. То есть можно или другую папку указать, или просто в своей основной папке создать такой шаблон и переопределить базовый. Все это дает огромные возможности для модульности и шблонизации. В общем, забегая далеко вперед (скорее всего в невозможное будущее), можно было бы заложить стандарты, чтобы в компонентах создавались для совместимости и феном, и смарти шаблоны компонентов. А вызов сниппета шаблонизатора (типа [[!smarty?]]) заменить на какой-то универсальный, который будет юзать текущую систему шаблонизации. У меня давно были на это мысли, и даже в ранних версиях phpTemplates сразу было прописано переопределяемое подключение системы шаблонизации (были такие эксперименты, от которых потом отказался).
Они по-прежнему любят getResources, они используют Wayfinder, даже Apache2 сегодня тут вспоминали.
Тут дело не в шаблонизаторах, а в подходе. Я предлагаю вообще самый простой способ — нужно просто установить один компонент (который и так есть у многих) и использовать в любом чанке новый синтаксис. Всё!
Ничего больше не нужно, просто хоть так пиши, хоть эдак — всё работает максимально прозрачно.
Предлагаешь это людям, а они отвечают
Типа, сам используй свои приблуды.
Ну и зачем мне вообще напрягаться, что-то писать на английском, с такой реакцией? Зачем включать английский лексикон в дополнения, зачем комментировать код на языке вероятного противника?
Серьёзно, это же лишний напряг и всё равно никто не ценит. Прекрасно поставлена работа с сообществом в MODX, лишний раз убеждаюсь.
Кстати, кто-то видел официальное объявление о единственном в истории мобильном приложении для iOS — mxManager? Да ладно, объявление, хоть бы ретвитнули. Действительно, кому это может быть интересно…
У меня от них уже лютый баттхерт, прям бомбит.
Fi1osofТут же даже далеко ходить никуда не надо. Взять modx.pro и modxlub.ru — у вас одни технологии, у нас другие. Это мы подходы сейчас обсуждаем примерно одни, а технологии разные. Хоть и нет у нас трудностей перевода (на одном языке говорим) и на рынке одном сидим. Но все же сильно отличаемся. Про modxSmarty я уже больше двух лет рассказываю, но аналог вы только сейчас запускаете. Хотя и подключается у нас тоже не на много сложнее.
В общем, я давно уже никому ничего не навязываю. Кто что хочет — тот пусть и юзает. Иногда вот только мнением поделюсь своим, да на вопросы отвечу, но навязывать не буду — пусть каждый сам себе решает что юзать. Вот и ты нервы побереги, не обращай внимания на них. Ведь в первую очередь ты это для себя делаешь. Я вот тоже для себя в первую очередь делаю, и не особо важно будет кто юзать или нет. Для меня главное — что я с этим инструментарием могу разрабатывать проекты для своих клиентов, которые их устраивают.
В первую очередь для себя я бы фиг стал 2 дня писать эту огромную портянку документации. А тем более предлагать её кому-нибудь перевести, да еще и самостоятельно оплачивать это.
Тут вот, недавно как раз Иван предлагал на западный рынок выходить, ха-ха!
Подобная политика приведёт к тому, что многие действительно начнут делать только для себя — и не делиться этим.
Fi1osofА я пишу в первую очередь для себя. И документацию как таковую не пишу.
Fi1osofОбъявляю личные санкции западу, пусть учат великий и могучий.
Мало того, ведь твои наработки еще могли не найти своих реальных потребителей в англоязычном пространстве. А ты так их всех быстро, практически за один день, низверг в «гиену огненную»)))
Не, серьёзно, я подумывал что-то начать писать на английском, но теперь точно нет.
Пока займусь другими, более полезными делами, а после отпуска посмотрим.
Вряд ли стоит нервничать, что нет немедленной и положительной реакции. Пусть все идет своим чередом.
Спасибо тебе за твой труд!
Так что ты не горячись. Думаю, они оценят. Просто они еще из отпуска не вернулись. :)
Т.е. это интересно и, однозначно, востребовано.
pdoParser позволяет использовать новый и старый синтаксис вместе. Это по-любому лучше, чем один старый синтаксис без вариантов.
Многие все еще не могут обойтись без Apache почему то.
Fi1osofP.S. уточню, что на указанном проекте пришлось еще использовать cacheOptimizer для решения проблем с генерацией кеша контекста с большим количеством ресурсов, а так же вот эту свежую технологию. Тем не менее, заслуга системы шаблонизации здесь имела самое главное место.
Так же я обещал написать подробную статью про разработку крупных проектов на MODX, но обрушился большой объем срочной работы, из-за чего я так этого и не сделал (да и вообще по-моему ни одной статьи с того момента нигде не опубликовал). Но вот уже доразгребаюсь и скоро все-таки напишу ее и маякну. Там как раз так же отдельное внимание будет уделено системе шаблонизации и ее роли в вопросе снижения нагрузки на сайт.
Потому что у меня складывается стойкое ощущение, что авторы MODX свою систему в реальной работе уже не используют.
Пишут там на Slim и Twig что-то под заказ, устанавливая их через Composer, а MODX просто любят по старой памяти.
Fi1osofНеужели там везде getResources и это всех устраивает? А если там что-то другое, то почему об этих новых прорывных технологиях нет никаких известий?
Я пока вижу только влажные мечтания о MODX 3, в появление которого не верю с 2012 года (то есть, с момента анонса).
Неужели только нас в СНГ не устраивает скорость работы Revolution из коробки с рекомендуемыми дополнениями?
Fi1osofИспользование
или
позволяет работать с файлами напрямую, без источников и запросов в БД. В новой статье об этом тоже написано.
А может pdoParser также и сниппеты и плагины грузить (инклюдить) напрямую?
Например,
Работа с PHP кодом остаётся на совести ядра MODX и туда вмешиваться я пока не хочу. Лучше оптимизировать код своих сниппетов, чем пытаться сэкономить микросекунды на их загрузке.
Отправил небольшую спасибу за труд. (Соберешься когда-нибудь кошелек на Яндексе создать?)
Z-Payment почему-то прекратили принимать деньги для Яндекса, может еще починят.
Сделай просто ссылку на сервис Яндекса для таких спасибо — ввел сумму, нажал Оплатить и все.
П.С. Кстати, твой раздел для благодарностей нашел только через поиск на modx.pro. На bezumkin.ru он хорошо спрятан :)
А как я узнаю, кто именно сказал спасибо?
Ну и вообще, это же для оплаты курсов сделано.
Обычно люди отписываются, так что можно об этом не переживать.
Все-таки сделай в контактах кнопку, чтоб желающие не мучались, куда отправлять благодарность. :)
Пока жду статью про разработку крупных проектов на MODX поэкспериментирую с Femon, за что Василию спасибо.
Ну вот кстати, уж не знаю как оно там на самом деле, но мне не раз его горячо советовали. Типа разобраться можно за несколько часов, пишется на нём легко и быстро.
Но факт остаётся фактом — для сайтов в классическом смысле — modx незаменим. А фреймворки лучше брать для совсем уж «некондиции» — сервисов там всяких или ещё чего.
И да, чтобы выходить на рынок (включая западный) со своей технологией, о ней нужно рассказывать максимально подробно, с примерами, с киллер-фичами, основательно. И спокойно относится к тому, что тебя не поняли с первого раза.
Они мечтают о MODX 3, а как сегодня работает MODX 2.2 уже неважно. Иначе объяснить фразу «скорость — не главное» и рассуждения о полной замене парсера, без совместимости с текущими чанками, я не могу.
Смешно думать, что я что-то показывал в первый раз. Еще на этапе разработки я это всё демонстрировал главе MODX, господину Райану Трэшу. Да и с некоторыми разработчиками в приватной беседе наговорил много часов.
То, как я отреагировал сегодня — это просто я устал что-то говорить. Писать на неродном языке для меня само по себе напряжение, и когда талдычишь как об стенку горох, это рано или поздно надоедает.
Вот мне и надоело, извините. Дальше пусть с западными коллегами общается кто-то другой.
P.S. Ссылочка на комментарий другого известного специалиста годовалой давности. Это же всё копится и копится со временем. Интересно, а упомянутый JC в комментарии… Кто бы это мог быть?
Mitch Wilson попросил оптимизировать ему сайт, что принесло ему увеличение доходов на 30%. Про бесплатность речи нет.
Fi1osofЕще немного рассуждений. На самом деле не понятна такая холодная реакция западных разрабов. Активно разрабатывал и двигал тему я еще почти 3 года назад community.modx-cms.ru/search/topics/?q=modxSmarty (на самом деле в проектах Смарти крутить начал еще в 2011-ом). Так вот, на ранних стадиях эта тема была интересна западу. В частности очень сильно заинтересован был Andrew Smith aka silentworks. Он как раз экспериментировал с твигом. Мы с ним в скайпе не раз общались, ему все очень нравилось, он был в восторге (именно от связки phpTemplates+modxSmarty). Уточню: его именно сама основа радовала, но Смарти его не интересовал, он твиг хотел использовать. Так же я не раз общался с Марком Хамстра, он тоже в деталях знает что и как у меня работает. То есть аргумент «они не разобрались еще что и как работает» — он здесь маловероятен ИМХО. Скорее всего здесь есть какая-то другая причина. Джейсон Ковард радеет в первую очередь за совместимость. Это и понятно. Отдав предпочтение одному шаблонизатору, можно потерять рынок альтернативного шаблонизатора. И затачивая модуль под определенный шаблонизатор, так же есть потери по совместимости. Так что с большой долей вероятности вот эти шаблонизаторы так и останутся 3rd-party, и в ядро никогда не попадут. Но это Джейсон. А вот почему тема затихла на уровне Andrew и прочих? Мне не понятно. В голову лезет только одна мысль — они осваивают другие платформы и технологии.