Вопрос по шаблонизации

Здравствуйте. Как я понял в чанках нельзя выполнять код. Но оказалось, что можно в чанк вписать не html а именно php-код и выполнить его из сниппета с помощью функции php
eval('текст чанка')
Сначала чанк можно выполнитьб как обычно, а потом уже сам результат
eval('результат обработки чанка')
Вопрос — это как-то повлияет на безопасность?
Хотелось использовать стандартную шаблонизацию modx, но ее несколько не хватает. А использовать fenom — не хотелось бы.
И какие еще шаблонизаторы можно использовать в modx? (fenom, smarty, twig, blitz — уже смотрел, не совсем подходят, по скорости наверное только fenom подойдет и то...)
Денис
18 марта 2019, 21:34
modx.pro
565
0

Комментарии: 5

Николай Савин
19 марта 2019, 13:08
+2
А почему fenom не хочется использовать? Есть какие то объективные причины?
Использование фенома и файловых элементов для разработки из IDE это практически промышленный стандарт в MODX уже года два как. Шаблонизатор существенно упрощает работу, за счет удобных условий, циклов, встроенных модификаторов. Прирост по скорости значительный. Ну и кроме того сильно уменьшается число чанков.
    Николай
    19 марта 2019, 13:26
    0
    Иногда даже с феном не очень удобно, когда слишком много логики на странице. Тогда в помощь плагины на события типа OnLoadWebDocument, OnWebPagePrerender. Там можно получить и переназначить все поля ресурса. А можно установить плейсхолдеры $modx->setPlaceholder('name', value); И в чанке или шаблоне уже не городить конструкции из if'ов, а вывести [[+my_placeholder]], или {$_pls['my_placeholder']} который будет содержать результат обработки данных плагином.
      Денис
      19 марта 2019, 13:29
      0
      Я пока не использовал fenom в полномасштабном варианте, просто изучаю вопрос. У fenom парсер использует {}, что не есть хорошо (javascript использует то же самое). Одновременно использовать парсер modx и fenom не рекомендуется (скорость нестабильна, а мне скорость важна). Стандартный парсер чанков в modx имеет несколько слабоватые возможности, поэтому я и попытался использовать другой. Но как оказалось быстрых парсеров php раз два и обчелся. Многие из них тоже используют {}
      Хотелось чтобы парсер был быстрый, простой, не мешал в modx… это в идеале
      ps. Но похоже все равно придется в основном использовать чисто fenom (без стандартного парсера modx), в некоторых случаях можно и eval…
        Вася
        19 марта 2019, 14:28
        0
        «У fenom парсер использует {}, что не есть хорошо (javascript использует то же самое).»
        А что в этом страшного?
          Николай
          19 марта 2019, 15:27
          +1
          Ставите пробел после { и fenom игнорирует всё что после скобки. Нужно просто пробелы выставить в скриптах после {. Также все что внутри {ignore}{/ignore} тоже будет проигнорировано.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5