Обновить
Комментарии 12
Красота! Тот редкий случай когда API обертка над сущностями CMS создается действительно быстро и без костылей.

это обертка над сущностями БД а не сущьностями CMS, да просто и красиво, но что б использовать полноценно как обертку над CMS нужно дописывать кучу логики.

Но ведь это только работа с БД. В MODX есть ещё, к примеру процессоры, которые тоже запускают некоторую логику и перед, и после добавления ресурса. А данное API эти правки опускает, работая напрямую с БД. При чём тогда тут MODX?
В MODX есть ещё, к примеру процессоры, которые тоже запускают некоторую логику и перед, и после добавления ресурса.
Согласен, есть, например, плагины, которые нужно запускать. Во-первых бывают ситуации когда вам нужно только просматривать информацию, но не добавлять и редактировать. В этом случае такое API потребует значительно меньше времени. Сделать возможность запуска плагинов, думаю, не сложно. Это можно в будущем реализовать. Опять же, это будет быстрее, чем делать с нуля на MODX.

Не пойму где это применить на практике?


Если делаем проект на MODX с рестфул то создаем свое апи под проект и нет смысла открывать доступ ко всему.


Если делаем как базу для рестфул админки то зачем тут Симфони?


Если уже используем Симфони то зачем нам МОДХ?

Не пойму где это применить на практике?
Например заказчику нужно мобильное приложение, где он мог бы добавлять страницы, просматривать пользователей или заказы в интернет-магазине. Так же можно использовать для создания облегченной версии админки под конкретный проект. Там некоторый функционал MODX можно не дублировать.
Если делаем как базу для рестфул админки то зачем тут Симфони?
Симфони затем, что Api Platform использует именно этот фреймворк.
Если уже используем Симфони то зачем нам МОДХ?
Вполне могу представить ситуацию, когда заказчику понравилась CMS MODX (или любая другая), вы сделали сайт, а потом он захотел мобильное приложение. Думаю использовать API Platform будет быстрее, чем писать API на MODX.

На выходе получим ситуацию:


У клиента был сайт на MODX и он мог всегда найти разработчика любого который знает MODX


А после такой интеграции ему уже нужен разработчик который знает и MODX и Symfony


Как по мне такой подход хуже чем написать api в рамках MODX с учетом что задача эта решается пускай и дольше чем через api платформ но не сложнее.


Вообщем я бы очень осторожно смешивал разные системы в одном проекте ибо потом очень сложно это все поддерживать, говорю на опыте поддержки:


MODX Revo + Laravel
MODX Evo + Kohana


Притом в обеих случаях качество кода было не очень по причине что разработчик кто это делал не мог простые вещи реализовать в рамках MODX и из за этого и прикрутил фреймворк

Да, в данном решении есть свои минусы, но есть и плюсы. Решение нужно выбирать под конкретный проект. Я бы использовал данное решение только для приложений, для которых нужно только чтение (read-only). Таких задач тоже бывает не мало.
А после такой интеграции ему уже нужен разработчик который знает и MODX и Symfony
Зависит от сложности приложения, которое будет использовать это API. Если оно простое, то знание Симфони не обязательно, достаточно добавить аннотацию @ApiResource классу и API для таблицы БД готово.
MODX часто используют не программисты, а верстальщики. Они используют стандартный функционал и дополнения. Данное АПИ тоже можно считать дополнением. Если какого-то функционала не хватает, то не программист (или программист, который не работает с Симфони) может добавить свою хотелку (feature-request) github.com/andchir/modx2-api/issues

Поэтапная миграция с CMS на Symfony. Может не полная, оставляем, например, функциональность редактирования статического контента, а всю бизнес-логику переносим в обычное Symfony приложение.

Открываю файл .env и редактирую строку подключения к базе данных проекта на MODX

Не .env, а .env.local

Можно создать (скопировать) .env.local из .env и указать там параметры подключения к БД и т.п. А можно создать .env из .env.dist. Кому как удобнее. Но ваш вариант более стандартный и предпочтительный, согласен.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.