CakePHP и Drupal 6 должны общаться друг с другом, но как? - PullRequest
5 голосов
/ 24 февраля 2011

У меня есть приложение CakePHP, которое должно получать данные из Drupal (6). В частности, существует один пользовательский тип контента и одна веб-форма, которые должны использоваться совместно с CakePHP - поэтому, когда добавляется новый узел для этого типа контента или отправляется веб-форма, Cake знает об этом. Я не уверен, что лучший способ сделать это, я предложил два подхода:

  1. Наличие альтернативного источника данных для рассматриваемых моделей и чтение непосредственно из базы данных Drupal. Тем не менее, таблицы Drupal имеют формат Drupally, и я бы не стал писать много $ this-> Model-> find () для - это будет немного болезненно. Я не совсем понимаю, где все хранит Drupal.
  2. Написание некоторого кода на Drupal для сохранения данных в другом формате в базе данных CakePHP. Я не знаю, насколько это легко - я больше разбираюсь в Cake, чем в Drupal. Думаю, я бы использовал hook_form_alter и добавил бы функцию в массив $ form [#submit]?

У кого-нибудь есть совет, какой из этих двух будет лучше, или есть другой вариант? Я склоняюсь ко второй идее.

Помощь с благодарностью, спасибо

Ответы [ 2 ]

5 голосов
/ 24 февраля 2011

Я бы создал API веб-сервисов в Drupal и периодически запускал пакетное задание в Cake, которое запускает API для новых данных.Попробуйте этот модуль: http://drupal.org/project/services

Или, если вам нужны супер-параллельные обновления, создайте API в Cake для получения данных и модуль в Drupal, который будет отправлять данные при отправке.

Таким образом, вам не нужно беспокоиться о совместном использовании на уровне базы данных.

0 голосов
/ 25 февраля 2011

Предполагая, что приложения Drupal и CakePHP существуют на одном сервере, я думаю, что я бы посмотрел на создание таблиц Cake в существующей базе данных Drupal.Таким образом, вам не нужно беспокоиться об источниках данных, API или обновлениях, так как вы можете просто просматривать таблицы.

Много раз мне приходилось делать это, потому что хостинг шел только с одним экземпляром БД,Joomla и другие приложения используют префикс имен таблиц именно по этой причине.

Что касается shape таблицы, вы можете настроить Cake в определении модели для правильного чтения таблицы (с помощьюуказание нестандартных имен id и fk и т. д.

Всегда старайтесь избегать дублирования данных, которые должны быть синхронизированы.

...