Skip to content

Журнал изменений

[3.0.0] — в разработке

Первый выпуск PageBlocks, построенный на четырёх обычных инструментах вместо самодельных: Eloquent для данных, Phinx для схемы, FastRoute для маршрутизации и pbFenom для шаблонов.

Данные

  • Модели Eloquent со связями, скоупами и кастами, достаются по короткому имени через model().
  • query() открывает конструктор запросов Illuminate к базе MODX, плюс withJsonColumns() для JSON-колонок, в которые пишет конструктор.
  • Миграции Phinx в двух независимых слоях — своём у компонента и своём у сайта.
  • Поля конструктора живут в JSON-колонке и ведут себя как обычные атрибуты; аксессоры писать не нужно.

Маршруты и запросы

  • Маршрутизация на FastRoute: именованные маршруты, группы, middleware, кэш маршрутов.
  • Route::crud() — весь набор CRUD за одним стеком middleware, fail-closed.
  • Свои Request / Response, валидация, защита от CSRF.
  • Редиректы из менеджера, хранятся в pb_routes.

Шаблоны

  • pbFenom — укреплённый форк Fenom, подключённый пакетом Composer: без eval(), с ограниченной рекурсией, с модификаторами, принимающими null, со строгими типами.
  • Пять провайдеров шаблонов — чанки MODX, файлы, пути и шаблоны.

Менеджер

  • Конструктор блоков, таблиц, полей, вкладок, колонок и меню.
  • Многоразовые блоки с мастер-копией и выборочной синхронизацией полей.
  • Версии с откатом и корзина для мягко удалённых строк.
  • Многоязычный контент: языки, переводчики, переводы.
  • Конструктор моделей — генерирует модели и миграции прямо из интерфейса.

Интеграция

  • REST API с bearer-токенами, правами, ограничением частоты, CORS и спецификацией OpenAPI, которая собирается сама.
  • Семь сниппетов MODX, чтобы до компонента можно было дотянуться из обычного шаблона: pbList, pbBlocks, pbResources, pbUsers, pbMenu, pbFilters, pbJson.
  • JavaScript для фронта: pbFetch, pbForm, pbMessage, pbPagination.

Требования

MODX 3.0+, PHP 8.2+. Установщик проверяет и то и другое.

© PageBlocks 2019-present