Управление контентом для существующего проекта PHP

В существующем проекте, который разрабатывается как законченное заказное решение, мы сталкиваемся с необходимостью системы управления контентом (как для нас, так и для клиента). Наши текущие общие потребности (в терминологии WordPress):

  • Создавайте собственные типы сообщений и таксономии (переводимые и версионные).
  • Доступ к данному контенту с помощью программируемого API (например, получить все элементы определенных типов сообщений)
  • Администрирование для данного типа сообщения (datagrid + формы)

Рассматривал следующие варианты:

  1. Использовать «стандартную» CMS (Drupal, Wordpress) — кажется невозможным, поскольку они кажутся слишком автономными, чтобы просто использовать их часть, что в основном потребует полной перезаписи нашей текущей кодовой базы (что невозможно).
  2. Напишите такую ​​функциональность, чтобы она соответствовала проекту — не такая уж абстрактная, но и не переиспользуемая.
  3. Библиотека с описанным функционалом, просто установить и настроить типы постов, таксономии... - было бы идеально, но пока не нашел. ( Кажется, Symfony CMF может это сделать, что трудно сказать из документации).

Вопросы:

  1. Есть ли CMS с описанным функционалом, которую можно было бы интегрировать в существующий проект?
  2. Есть ли какая-нибудь библиотека, обеспечивающая описанную функциональность?

Примечание: ранее заданный на https://stackoverflow.com/questions/42230616/content-management-for-existing-php-project , поскольку я считал, что это больше вопрос, связанный с программированием.

Не уверены, что вы просите? Вы уже определили, что вам нужно, и возможные решения для этого (WordPress/Drupal и т. д.). Какая проблема у вас возникла при интеграции их в существующий проект? Если вы ищете способ включить функциональность из WordPress (например) в другой веб-проект, взгляните на Интеграция Wordpress в сайт, отличный от WordPress . Я использовал этот метод раньше, чтобы сообщения WordPress отображались на веб-сайте на основе CMS Made Simple.

Ответы (1)

Из того, что вы написали, я бы сказал, что вам следует еще раз взглянуть на Drupal.

  • Вы можете легко определить типы содержимого ваших сообщений с помощью настраиваемых имен полей, типов полей и реляционных полей. Вы можете перевести каждое сообщение и определить его схему URL. Система таксономии потрясающая, вы можете иметь отношения родитель-потомок, синонимы, параллельные таксономии и т. д.
  • Ядро Drupal 8 хорошо структурировано и теоретически может быть включено в качестве зависимости в ваш PHP-проект, где только части Drupal API могут использоваться для программного доступа к объектам контента (запросы, фильтрация, создание и т. д.). Кроме того, вы можете использовать REST API для доступа.
  • Администрирование для типов сообщений может быть настроено.

Я бы не советовал использовать для этого «библиотеку», потому что в этой библиотеке будут отсутствовать все функции администрирования (сетка данных и формы, ограничения доступа, аутентификация), и в конечном итоге вам придется писать свою собственную CMS.

Я бы поддержал это предложение. Я был разработчиком Drupal в течение последних 7 лет. Несмотря на то, что у него есть своя доля разочарований, он будет делать именно то, что вы говорите, что вам нужно. Вот кое-что, что может помочь вам в преобразовании: используя пользовательский модуль, который вы пишете сами, вы можете использовать обратный вызов для выполнения вашего произвольного кода PHP. Таким образом, вам не нужно переписывать свою кодовую базу. Просто перенесите его на обратные вызовы, которые вы затем вызовете с помощью Drupal.