modZone.ru
138 subscribers
15 photos
3 files
57 links
Канал сайта modZone.ru
Download Telegram
Channel created
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, друзья! Мои подписчики первыми узнают о моих планах 😀 Сегодня с утра решил допилить controlErrorLog. Теперь он будет выглядеть так.
Очередные размышления на тему как в MODX встроить шаблонизатор PHP без костылей и палок.

https://modzone.ru/blog/2020/09/06/new-parsing-concept/
Сегодня сделал каркас описанной выше концепции парсинга. Пока только со Smarty. Постарался убрать все раздражающие моменты шаблонизации с Феномом.

Во-первых, рекурсивный парсинг заменён на однократный. Во-вторых, теперь нет проблем с кэширование чанков и файловых сниппетов. В-третьих, отказ от шаблонов в БД. Последние нужны только для ТВшек. Ну и наконец, нет проблем с фигурными скобками в javascript.

По итогам тестирования Smarty выигрывает у Fenom при парсинге 100 чанков около 30%. Это с учётом холодного запуска. Со второго просмотра страницы выигрыш составляет уже порядка 50% - 0,0254 сек против 0,0378 сек. Тут я говорю о Fenom из pdoTools, работающий в режиме MODX шаблонизатора.

Сравнивая эти 2 шаблонизатора могу сказать, что у Smarty больше удобных фишек. Следующий на очереди Blade. Обдумываю, не впихнуть ли их в один пакет. Иначе придётся делать 3 пакета. Один, который меняет логику парсинга, от которого будут зависеть 2 других с шаблонизаторами. Дилемма! 🤔
Что интересно, все туториалы и курсы по изучению языков программирования обязательно содержат пример создания TODO функционала. А вот в MODX такого не оказалось. Заговор или модыксеры выше этого? 🤷‍♂️
А мне вот понадобилось.
Уже сейчас можно попробовать потестить скорость Smarty и Fenom. Считает среднее на 10 запросов по кругу.

http://s22375.h3.modhost.pro/smarty.html

http://s22375.h3.modhost.pro/fenom.html
Меня периодически спрашивают, как я генерирую разноцветный геометрический фон для заголовков моих статей на главной странице моего сайта. А я для этого использую специальную js библиотеку

https://github.com/btmills/geopattern