Дорогие Друзья!
Рад вам сообщить о выходе новой версии движка Flextype 0.9.6!
Более двух месяц работы над новой версией движка и почти 300 часов программирования и тестирования!
Основное отличнее Flextype 0.9.6 от 0.9.5 - это улучшение производительности в разы!
Flextype всегда была быстрой системой, но новая Flextype 0.9.6 еще быстрее! Быстрее в 12 - 14 раз!
С помощью
Для просмотра ссылки Войди или Зарегистрируйся было найдено несколько критических мест, которые оказывали влияние на производительность системы в целом.
Было проведено несколько тестов и сравнений производительности с другим Flat File CMS, Flextype 0.9.6 быстрее их в разы! Новая Flextype 0.9.6 отдает одну страницу из 100 000 тысяч страниц за доли миллисекунд!
1 — Улучшение производительности в 12 — 14 раз!
Новая Flextype 0.9.6 отдает одну страницу из 100 000 тысяч страниц за доли миллисекунд, что нельзя сказать например о Grav CMS.
Секрет такой высокой производительности Flextype, в том что Flextype не загружает всю базу данных страниц в память при каждом запросе к странице
(не понимаю зачем вообще так делать ?!), а загружает лишь запрашиваемую страницу. Flextype загружает толко то что вы запрашиваете и ничего лишнего. Так же прирост производительности получается благодаря сохранению результат парсинга YAML, Markdown, JSON в кэше!
Да, YAML - удобный и легко читаемый язык для работы с данными, но его парсинг занимает большое количество времени, особенно когда данных достаточно много и в Flextype 0.9.6 эта проблема решается с помощью кэша по ключу генерируемого на основе передаваемого контента. Сохраняем результаты работы парсеров и получаем дополнительный прирост производительности
Вот такие результаты теста производительности:
Flextype 0.9.6 vs Grav 1.7.0-rc.1!
БД из
100 000 страниц! Размер
БД - 700mb!
Запрашиваемую страницу
Flextype мне отдал отдал за 269ms!
в то время как Grav просто разогрел мой МакбукПро до 100℃ градусов и ничего мне не отдал
Страшно вообще тестировать выборку страниц из большой коллекции в Grav.
Как видите, Flextype 0.9.6 очень шустрая Flat File CMS и она быстрее своих конкурентов в разы!
Для уточнения!
Тест проводился на запрос одной страницы из 100 000 страниц и Flextype 0.9.6 отлично с этой задачей справляется, но важно заметить, то что работа с коллекциями данных это непростая задача и ее решение крайне непростое! Flextype практически мгновенно отдаст запрашиваемую страницу из 100 000 страниц, но вот выборка коллекции страниц из 100 000 страниц потребует дополнительной оптимизации со стороны пользователей(разработчиков) и со стороны Flextype над которыми я также работаю!
Итого: производительность Flextype уже возросла в 12 — 14 раз, но работа над улучшением производительности продолжается! Есть куда расти и есть что улучшать!
Для повышения производтельсности в будущем необходимо будет еще раз пересмотерть работу с кешем на уровне ядра и реализовать
stache_always_updateфункциональность, которая повысит в разы скорость загрузки страниц клиентской части сайта. Пересмотреть и отсечь двойные запросы к одним и тем же данным. Убрать всю графику из папок с entries
(там должны быть только записи!) все что относится к assets должно храниться отдельно от страниц. Например в папке /site/assets/
2 — Редактирование и перезагрузка настроек плагинов и тем!
В Flextype 0.9.6 появилась возможность редактирования и перезагрузки настроек плагинов и тем оформления, которые идут по умолчанию с плагинами и темами.
Больше не будет необходимости лазить ручками в плагины и править их настройки прямо в их директориях, так как теперь все настройки можно перезаписать поверх или добавить новые.
В будущих версиях скорее всего появится интерфейс кнопок, вместо редактора настроек.
Также мы получаем еще один способ хранения глобальных переменных
Например, можно сохранить какие нибудь глобальные переменные в плагине site и потом использовать их глобально по сайту, вызывая их из реестра.
3 — Иконки для записей!
В Flextype 0.9.6 появилась возможность назначать индивидуальные иконки для записей и коллекций записей.
Так как записи в Flextype это нечто большее чем просто страницы - иконки позволят визуально выделить их в зависимости от их назначения
Теперь каталоги, отзывы и прочий функционал сайта созданный с помощью записей будут выделяться на фоне других записей (страниц) сайта.
4 — Улучшен интрефейс!
Интерфейс админки стал более минималистичнее и удобнее! Появились иконки во всех разделах админки и все кнопки действий спрятаны в выпадающие списки.
Также появились подсказки и автозаполнение полей!
5 — Упрощенная сборка!
В сборке начиная с Flextype 0.9.6 включено Flextype Core + Admin Panel Plugin + Site Plugin и всего одна главная страница!
Страницы, наборы полей, скрипты и графика необходимая для блога, галереи и тд. будут вынесены из сборки в отдельные решения: плагины, темы, скрипты или мануалы и гайды.
Если посмотреть успешные Headless решения - они всегда идут "голыми", но предлагают возможные варианты развертывания какого либо проекта: блога, каталога и тд. - и это по желанию каждого, но без принудительного навязывания.
Идея в том чтобы иметь чистую сборку, а проект на ней разворачивать уже под свои требования!
6 — Индивидуальные наборы полей для каждой страницы!
Flextype уже предоставляет возможность работы с индивидуальными полями для страниц/записей, но в Flextype 0.9.6 появилась возможность создавать индивидуальные поля и для каждой записи индивидуально! Набор индивидуальных полей записи можно хранить в поле `еntry_fieldset`
7 — Возможность работы с кешем в шаблонах!
В новой Flextype 0.9.6 появилась полноценная возможность работать с кешем в twig шаблонах. Это позволит оптимизировать производительность проекта на уровне шаблонов, например сохраняя результаты запросов или парсинга в кеше.
А также множество других улучшений и исправлений найденых багов: Для просмотра ссылки Войди или Зарегистрируйся
Скачать
Для просмотра ссылки Войди или Зарегистрируйся
Обновление с Flextype 0.9.5 до Flextype 0.9.6
- Сделать полный бекап сайта!
- Скачать Для просмотра ссылки Войди или Зарегистрируйся
- Распаковать содержимое архива.
- Внимательно прочитать список изменений и особенно раздел BREAKING CHANGES
- Загрузить на сервер /flextype/, /vendor/, /site/plugins/admin/, /site/plugins/site/, /site/themes/default/
Буду рад любой вашей помощи проекту!
Несколько способов поддержать проект:
— Поставить лайк и сделать репост этого поста.
— Разместить ссылку на
Для просмотра ссылки Войди или Зарегистрируйся в своем профиле на сайтах и форумах c кратким описанием проекта.
— Написать статью или пост на любом тематическом форуме о проекте Flextype.
— Принимать активное участие в обсуджениях сообщества Flextype! (VK, DISCORD, GITHUB)
— Создавать и поддерживать переводы Админки, Сайта и Документации.
— Находить баги и сообщать о них на GitHub-e.
— Стать спонсором проекта, поддержать денежкой, для оплаты хостинга, и часов разработки.