Дорогие Друзья!

Рад вам сообщить о выходе новой версии движка Flextype 0.9.0!

Это важный релиз для проекта, так как он определяет дальнейшее направление в его развитии! Движок переписан с нуля в соответствие с современными стандартами. Flextype все ближе к Headless системами и все дальше от своего предка Monstra CMS.

Для релиза Flextype 0.9.0 было потрачено более 450 часов на исследование, разработку и тестирование! Запушено более 1200 коммитов в репозитории проекта и уничтожено десятки литров кофе!

Основные изменения в новой Flextype 0.9.0

1 Новое Flextype API

Движок полностью переписан с нуля. Теперь API для разработчиков более прозрачное и понятное, методы и параметры стандартизированы и приведены к одному общему виду. В ядро Flextype API входят: Entries API, Plugins API, Snippets API, Fieldsets API.

Также для теста написаного кода движка используется Scrutinizer Continuous Integration! Continuous Integration (Непрерывная интеграция) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий. Flextype Public API появится в следующих релизах движка.

2 Slim Framework

Еще со времен Monstra CMS была проблема в отсутствии нормального роутинга, и эта же проблема пришла в Flextype. Роутинга у нас не было, были только методы для работы с URI. В поисках лучшего Роутера, был выбран мощный микрофреймворк Slim.

Slim Framework - это идеальный инструмент для создания API, которые используют, переиспользуют какие-либо данные или же предоставляют к ним доступ. C помощью микрофреймворка Slim можно создавать полнофункциональные web-приложения с пользовательским интерфейсом. Он очень быстрый, имеет небольшую кодовую базу - только то, что нужно!

3 Twig Template Engine

Много лет в Monstra CMS теперь и в Flextype (до 0.9.0) использовался нативный PHP в роли шаблонизатора, но с переходом на Slim Framework и его простой интеграцией с современным шаблонизатором Twig было принято решение перейти на Twig окончательно!

Основные особенности Twig:

  • Быстрый: компилирует шаблоны в PHP код. Добавочный, относительно нативного PHP, код был сведен к минимуму.
  • Безопасный: есть режим «песочницы» для проверки сомнительного кода в шаблонах. Это позволяет использовать Twig в качестве языка шаблонов для приложений, где пользователи могут менять дизайн шаблонов.
  • Гибкий: основан на пластичном лексере и парсере. Это позволяет разработчику определять свои собственные тэги и фильтры, создавать свой DSL.

4 League Glide

Полная интеграция с библиотекой League Glide для произведения манипуляций с изображениями. Никаких костылей или хаков как это в текущей было в предыдущих версиях Flextype. В Flextype 0.9.0 полная нативная поддержка League Glide! Работать с изображениями можно будет просто через API как это делает например imgix.com.

5 Respect Validation

В новой Flextype 0.9.0 используется Respect Validation для валидации данных. Respect Validation - это самый лучший валидатор, который когда либо был написан на PHP. Он предоставляет более 100 (полностью протестированных) валидаторов.

6 Переход на JSON вместо YAML

Переходим c YAML на JSON! Хранение данных в JSON формате позволит в будущем их располагать не только в файлах (Flat File) но и например в MongoDB или PostgreSQL (с помощью драйвера). Я думаю что такой подход поможет масштабируемостью проектов разработанных на Flextype в будущем.

7 Плагины Site и Admin

Вместе с новой Flextype 0.9.0, появился новый плагин Site и переписанный плагин Admin. По сути теперь Flextype предоставляет простой и понятный программный API для работы с данными, а плагины решают, что с этими данными делать. В следующих релизах Flextype появится и Public API, который позволит создавать приложения любой сложности для любых устройств используя Flextype Public API как в Headless CMS :)

8 League Event

В Flextype 0.9.0 используется простая, но эффективная библиотека для работы с событиями системы League Event вместо Flextype Events.

9 Whoops Error Handler

В Flextype 0.9.0 используется небольшая библиотека/фреймворк для работы с ошибками и исключениями в PHP вместо Flextype Error Handler. Whoops — это небольшая библиотека/фреймворк для работы с ошибками и исключениями в PHP. Из коробки он предоставляет аккуратный и удобный интерфейс, который помогает вести разработку быстро.

Основные особенности Whoops:

  • Гибкий стековый перехват ошибок
  • Не требует зависимостей (на данный момент)
  • Простое API для работы с исключениями, фреймами стека вызовов и их данными
  • Включает информативную страницу ошибки
  • Возможность открыть указанный файл прямо в вашем IDE/редакторе
  • Включает обработчики для разных форматов ответа (JSON, XML, SOAP)
  • Легко расширяется и легко интегрируется в другие библиотеки и фреймворки
  • Аккуратный, хорошо структурированный и протестированный код
  • Также Whoops позволяет открывать файлы сразу в IDE. На данный момент whoops из коробки поддерживает - - следующие IDE/редакторы:
  • Emacs
  • IDEA
  • MacVim
  • PhpStorm (только для MacOS)
  • Sublime Text 2 и возможно 3
  • Textmate
  • xdebug-формат
  • VSCode

10 Slugify

В 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

Планы на ближайшее будущее:

  • Адаптировать существующие плагины для Flextype 0.9.0
  • Поиск и исправление ошибок, улучшение движка.
  • Обновление документации
  • Создание уроков и статей по работе с Flextype.
Date: 08-06-2019 09:46 Теги: релиз