Дорогие Друзья!
Рад вам сообщить о выходе новой версии движка Flextype 0.9.0!
Это важный релиз для проекта, так как он определяет дальнейшее направление в его развитии! Движок переписан с нуля в соответствие с современными стандартами. Flextype все ближе к Headless системами и все дальше от своего предка Monstra CMS.
Для релиза Flextype 0.9.0 было потрачено более 450 часов на исследование, разработку и тестирование! Запушено более 1200 коммитов в репозитории проекта и уничтожено десятки литров кофе!
Основные изменения в новой Flextype 0.9.0
Движок полностью переписан с нуля. Теперь API для разработчиков более прозрачное и понятное, методы и параметры стандартизированы и приведены к одному общему виду. В ядро Flextype API входят: Entries API, Plugins API, Snippets API, Fieldsets API.
Также для теста написаного кода движка используется Scrutinizer Continuous Integration! Continuous Integration (Непрерывная интеграция) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий. Flextype Public API появится в следующих релизах движка.
Еще со времен Monstra CMS была проблема в отсутствии нормального роутинга, и эта же проблема пришла в Flextype. Роутинга у нас не было, были только методы для работы с URI. В поисках лучшего Роутера, был выбран мощный микрофреймворк Slim.
Slim Framework - это идеальный инструмент для создания API, которые используют, переиспользуют какие-либо данные или же предоставляют к ним доступ. C помощью микрофреймворка Slim можно создавать полнофункциональные web-приложения с пользовательским интерфейсом. Он очень быстрый, имеет небольшую кодовую базу - только то, что нужно!
Много лет в Monstra CMS теперь и в Flextype (до 0.9.0) использовался нативный PHP в роли шаблонизатора, но с переходом на Slim Framework и его простой интеграцией с современным шаблонизатором Twig было принято решение перейти на Twig окончательно!
Основные особенности Twig:
Полная интеграция с библиотекой League Glide для произведения манипуляций с изображениями. Никаких костылей или хаков как это в текущей было в предыдущих версиях Flextype. В Flextype 0.9.0 полная нативная поддержка League Glide! Работать с изображениями можно будет просто через API как это делает например imgix.com.
В новой Flextype 0.9.0 используется Respect Validation для валидации данных. Respect Validation - это самый лучший валидатор, который когда либо был написан на PHP. Он предоставляет более 100 (полностью протестированных) валидаторов.
Переходим c YAML на JSON! Хранение данных в JSON формате позволит в будущем их располагать не только в файлах (Flat File) но и например в MongoDB или PostgreSQL (с помощью драйвера). Я думаю что такой подход поможет масштабируемостью проектов разработанных на Flextype в будущем.
Вместе с новой Flextype 0.9.0, появился новый плагин Site и переписанный плагин Admin. По сути теперь Flextype предоставляет простой и понятный программный API для работы с данными, а плагины решают, что с этими данными делать. В следующих релизах Flextype появится и Public API, который позволит создавать приложения любой сложности для любых устройств используя Flextype Public API как в Headless CMS :)
В Flextype 0.9.0 используется простая, но эффективная библиотека для работы с событиями системы League Event вместо Flextype Events.
В Flextype 0.9.0 используется небольшая библиотека/фреймворк для работы с ошибками и исключениями в PHP вместо Flextype Error Handler. Whoops — это небольшая библиотека/фреймворк для работы с ошибками и исключениями в PHP. Из коробки он предоставляет аккуратный и удобный интерфейс, который помогает вести разработку быстро.
Основные особенности Whoops:
В Flextype 0.9.0 используется небольшая, но мощная библиотека Slugify для создания безопасных и человекочитаемых slug.
slug - это часть URL-адреса, которая идентифицирует страницу, используя человекочитаемые ключевые слова. Чтобы сделать URL-адрес проще для пользователей, специальные символы часто удалены или заменены. Например, акцентированные символы обычно заменяются буквами английского алфавита; пунктуация метки обычно удаляются; и пробелы (которые должны быть закодированы как %20 или +) заменены тире (-) или символом подчеркивания , которые более эстетично.
Полный список изменений в Flextype 0.9.0 можете посмотреть в https://github.com/flextype/flextype/blob/master/CHANGELOG.md
Скачать Flextype 0.9.0: https://github.com/flextype/flextype/releases/tag/v0.9.0
Планы на ближайшее будущее: