Журнал изменений
[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+. Установщик проверяет и то и другое.