Перейти к содержанию

Объекты Flex⚓︎

Объекты Flex - это новая концепция в Grav 1.7, которая добавляет поддержку пользовательских типов данных, легко встраиваемых на ваш сайт. Объекты Flex предоставляются плагином Flex Objects, который необходим для панели админки и входит в пакет Grav Core + Admin Plugin.

Flex-каталоги в данной документации не имеют ничего общего с плагином Flex Directories. На самом деле старый плагин был заменен этой функцией вместе с плагином Flex Objects.

Введение⚓︎

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

Flex⚓︎

Flex это контейнер для Flex-каталогов.

Это дает единую точку доступа для всех данных на сайте, учитывая, что данные находятся внутри каталога Flex. This makes all the objects available to every page and plugin in your site.

Даже если учётные записи пользователей Flex или страницы Flex не включены, вы все равно можете получить доступ к их версиям Flex как в интерфейсе, так и в панели администратора.

Тип Flex⚓︎

Тип Flex это чертеж для вашего Flex-каталога.

Он определяет всё, что необходимо для отображения и изменения содержимого: структуру данных, поля форм, разрешения, файлы шаблонов и даже уровень хранения.

Flex-каталог⚓︎

Flex-каталог хранит коллекцию Flex-объектов одного Flex-типа.

Каждый каталог содержит коллекцию объектов с дополнительной поддержкой индексов для ускорения запросов к хранилищу.

Коллекция Flex⚓︎

Коллекция Flex это структура, которая содержит Flex-объекты.

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

Объект Flex⚓︎

Объект Flex является единичным экземпляром некоего Flex-типа.

Объект представляет собой единую сущность. Объект предоставляет доступ к своим свойствам, включая любые связанные данные, такие как Медиа. Объект также знает, как визуализировать себя или какую форму использовать для редактирования своего содержимого. Такие действия, как создание, обновление и удаление объектов, поддерживаются самим объектом.

Индекс Flex⚓︎

Индекс Flex используется для быстрого выполнения запросов к Flex-каталогу.

Содержит метаданные для объектов Flex, но не сами объекты.

Хранилище Flex⚓︎

Хранилище Flex является слоем хранения для Flex-объектов.

Это может быть один файл, набор файлов в одной папке или набор папок. Flex также поддерживает пользовательские хранилища, такие как хранилища баз данных.

Форма Flex⚓︎

Форма Flex интегрируется в плагин Form и позволяет создавать или редактировать Flex-объекты.

Flex поддерживает несколько видов, которые позволяют изменять различные части объекта.

Администрирование Flex⚓︎

Администрирование Flex реализуется плагином Flex Objects.

Он добавляет новый раздел в плагине админки, позволяющий администраторам сайта управлять объектами Flex. Каждый Flex-каталог поставляется со списком ACL типа CRUD, который можно использовать для ограничения доступа к различным областям админки и действий в них для определённых пользователей.

Текущие ограничения⚓︎

Впереди еще много работы. Вот текущие ограничения при рассмотрении вопроса об использовании объектов Flex:

  • Многоязычная поддержка была реализована только для страниц, также админка пока не может быть полностью переведена
  • Фронтенд имеет только базовую маршрутизацию; для ваших пользовательских задач, таких как сохранение, вам нужна ваша собственная реализация
  • Функции массового обновления ещё не были реализованы в админке
  • Из-за ограничений индексации не рекомендуется использовать Flex для объектов, которые постоянно обновляются
  • Настройка вашего типа Flex требует хороших знаний в области кодирования и создания собственных классов