Алексей Шумаев

Алексей Шумаев

С нами с 30 ноября -0001; Место в рейтинге пользователей: #25

Еще немного про сессии MODX, компонент smartSessions

Всем привет!

Небольшая предыстория
Когда я на свой VPS сервер закинул очередной более-менее крупный сайт (в базе около 25 тыс. товаров), у меня начались проблемы с нехваткой памяти, mysql ее нещадно отъедал.

В процессе оптимизации я начал понимать, что у половины сайтов в базе большую часть объема занимает пресловутая таблица modx_sessions, где, как известно, лежат сессии посетителей.

Но… почему? У сайта посещаемость 150-200 человек в сутки, сессии хранятся 7 дней (да, я проверил, они действительно очищаются), но в таблице почему-то 200000 записей, хотя по логике вещей должно быть 200*7=1400+. Реальность расходится с теорией не на 5-10%, а в десятки раз!
В итоге таблица весит полгигабайта, сайтов штук 10, каждому дай памяти, вот VPS и падает периодически… непорядок!


Наумов Алексей
28 июля 2021, 10:51
modx.pro
15
4 237
+29

Отдаем модные форматы картинок в webp и avif напрямую через nginx и apache в обход разметки



Всем привет!
Я тут работал над одним проектом, в котором очень много контентной и интерфейсной графики, десятки тысяч изображений и, конечно, возник вопрос оптимизации сайта, чтобы удовлетворить требования поисковых систем.
Энтузиазма добавили, появившиеся относительно недавно у гугла, так называемые Core Web Vitals.
Кто не в курсе это пачка технических показателей качества сайта, которые скоро будут включены в алгоритм ранжирования и все тормознутые сайты из-за них, типа, покатятся вниз.
Ну в общем, встала задача оптимизировать картинки, а также сделать так, чтобы не пришлось переписывать кучу html кода, чтобы эти картинки туда вставить.
Семён Кудрявцев
26 апреля 2021, 23:44
modx.pro
20
5 557
+21

Помогите протестировать PR для ускорения выпуска Revolution 3.0

MODX 3 приближается к замораживанию функции перед бета-циклом и последующим релизом. Так как нам нужна максимально возможная помощь в тестировании и проверке ключевых проблем и Pull Requests («PRs»), мы создали это учебное пособие по подходу для тех, кто не привык жить в командной строке и работать с git'ом каждый день.

В настоящее время существует более двух десятков PR, которые должны быть объединены перед окончательным альфа-релизом.

Во время альфа версии, вещи, которые нарушают обратную совместимость, являются кандидатами для включения в релиз MODX 3.0. Однако, во время предстоящей бета-версии, больше никаких изменений, нарушающих совместимость, приниматься не будут. Бета-версия предназначена для шлифовки вещей и работы над тем, чтобы как можно больше дополнений работали без рефакторинга. Многие уже работают.

Иван Бочкарев
21 февраля 2021, 23:11
modx.pro
2
1 554
+21

VESP: Обновление существующих таблиц в базе

В этой статье я делюсь своим опытом о том, как лучше всего обновить существующие таблицы БД при работе с VESP.

В заметке Знакомимся с Vesp Core описан базовый функционал создания таблиц через миграции. Пока сайт находится в разработке и в таблицах нет ценных данных, можно менять таблицы полностью откатывая все миграции, и запуская их заново. Это отлично работает. Но удаляет все данные из таблиц и для работающего сайта не годится.
Иван Бондаренко
22 октября 2020, 12:29
modx.pro
2
756
+15

Деплой проекта на сервер из Github

При разработке проектов локально есть необходимость выгружать изменения на сервер. Просто взять и выгрузить всё сразу недостаточно, обычно нужно еще запустить какие-то скрипты, вроде обновления зависимостей и миграций.

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

А потом я наткнулся на ранее неизвестные мне возможности Git — его хуки.
Василий Наумкин
01 октября 2020, 11:54
modx.pro
12
15 700
+19

Тестируем PR miniShop2 в GitHub

Всем привет.

Сегодня я хочу поделиться, как тестировать PR пакета miniShop2 ака MS2. PRов выходит все больше и больше и очень хочется с ними познакомиться до релиза, а еще протестировать за одно.



Для этого Вам нужно установленный MODX 2.7.3 (желательно чистый) и установленный пакет PdoTools очень желательно последней версии.

Олег Щавелев
12 мая 2020, 20:42
modx.pro
4
1 542
+27

ResizeOnUploadPhpthumbon_modx

Загрузка изображений и их обрезка в менеджере файлов.
Нужно было решение (оптимизация загрузки больших изображений) пошел гулить нашел решение у bezumkin-а там плагин реализован через phpThumbof но этот сниппет не понимает кириллицу или другие знаки в именах файла (в коде сниппета не стал копаться) и решил использовать phpThumbon и переписал код.
С помощью этого плагина у вас не будет конфликтов с контент менеджерами, которые заливают фото на сайт весом по 5мб))

Плагин зависит от сниппета phpThumbon
vectorserver
08 апреля 2020, 23:57
modx.pro
5
1 363
+10

modExtra. Новые "плюшки" к чаю

Давно я не писал статей и заметок о нашем любимом MODX. Настало время это исправить. Пакет modExtra не обновлялся с июля 2019ого, по этому я решил добавить свои наработки за пару лет.

SEQUEL.ONE
17 марта 2020, 20:23
modx.pro
6
1 890
+11

Генерация файла sitemap.xml для мультиязычного сайта

Многие из нас делают мультиязычные сайты на контекстах. Контексты в MODx — вообще очень крутая штука, наверное, одна из самых крутых. На текущем большом мультиязычном проекте, SEO оптимизатор скинул мне статью в гугле и сказал, что нужно оптимизировать сайт под неё. Вопрос по теме задавали аж два года назад и ответов не последовало. Но народ вроде дал мотивацию тратить время на статью…
iWatchYouFromAfar
03 марта 2020, 22:28
modx.pro
15
4 322
+19

Выдаем вместо кэша html файлик

Предыстория. Возник такой вопрос. Есть какой то сайт, и в нем получается в каталоге было так. В вызов mFilter2 вложено в чанк еще парочка вызовов msProducts ну и так далее. В итоге, раздел грузился за овер 10 секунд. Да, сейчас напишите, что вот надо оптимизировать. Это понятно, но я решил подойти с другой стороны.
Итак, идея была такая, что бы вместо кэша выдавать уже готовую разметку целой страницы.
В итоге, у нас есть плагин:
<?php
switch($modx->event->name){
    case 'OnWebPagePrerender':
        // Тут просто условие, чтобы срабатывал только на категории (можно по сути задавать разные условия)
        if($modx->resource->class_key != 'msCategory'){
            return;
        }
        //Забираю отрендеренный ресурс
        $_output = &$modx->resource->_output; //Забираю отрендеренный ресурс
        // Создаю файлик разметки этого ресурса (можно по сути указать любой путь и так далее, сейчас и так сойдет)
        $file = MODX_BASE_PATH . 'resourcecache/' . $modx->resource->uri . '/' . $modx->resource->id . '.txt';
        if(is_file($file)){
            // Если такой файлик уже существует, то просто отдаю его содержимое
            $output = file_get_contents($file);
        }else{
            // Если файлика нету, то записываю туда отрендеренную страницу
            $cache = $modx->getCacheManager();
            $cache->writeFile($file, $_output);
            $output = $_output;
        }
        
        // Подменяю вывод на готовый
        $modx->resource->_output = $output;
        
        break;
        
    case 'OnLoadWebPageCache':
        // Это событие срабатывает до рендера страницы, оно проверяет, есть ли кэш страницы, и если он есть...
        $file = MODX_BASE_PATH . 'resourcecache/' . $modx->event->params['resource']->uri . '/' . $modx->event->params['resource']->id . '.txt';
        
        //...мы проверяем файлик, так как страница уже грузилась и файлик есть и подменяем кэш на содержимое неашего файлика.
        if(is_file){
            $modx->event->params['resource']->_content = file_get_contents($file);
        }
        
        break;
}
Итог, раздел грузился за 10 секунд (ну да, такой раздел, идея в другом), после плагина уже за 0.006 секунды, так как выдается готовая разметка.
Вопрос знатокам, на сколько такой подход вообще жизнеспособный по отношению к системе? Очень бы хотелось услышать комментарии.

Спасибо за донаты:
@Павел Бигель
Михаил
20 февраля 2020, 10:55
modx.pro
11
1 259
+16