Drupal way. Какой он?

Главные вкладки

Аватар пользователя DenisVS DenisVS 11 ноября 2011 в 8:41

Стоит задача периодического импорта некоего (чужеродного) контента, результата работы сторонней программы. Как правильнее:

1. Искать-собирать комбайн модулей, которые вкупе выполнят нужную функцию.
2. Разрабатывть модуль с нужной функцией.
3. Лить напрямую в БД сторонней программой.

С другим движком не задумываясь выбрал бы 3-й вариант, как самый логичный и наименее ресурсоёмкий. Однако, поколупавшись немного с Друпалом, понял, что и здесь "не как у людей" ))

Комментарии

Аватар пользователя kalabro kalabro 11 ноября 2011 в 12:35

"DenisVS" wrote:
С другим движком не задумываясь выбрал бы 3-й вариант

в обход API работать с базой нигде не приветствуется. в друпале всё ваше API будет из node_save() состоять, так что не сильно сложно.

Аватар пользователя DenisVS DenisVS 11 ноября 2011 в 12:57

kalabro
Я до этого не работал с движками, имеющими API. В этом смысле, придётся учиться.

Softovick
В принципе, да, наверное так и сделаю. Сейчас как раз с ним проэкспериментировал, вполне ему можно скармливать табличные данные.

Аватар пользователя bsyomov bsyomov 11 ноября 2011 в 13:40

Почему же не как у людей?
В тех движках, с которыми вы работали, видимо, вы просто не могли бы воспользоваться первым способом, за неимением нужных инструментов, или вторым способом, за неимением развитого API.
В принципе, можете конечно лить в базу как и в любом другом движке, но идеологически, правильнее остальные два способа, они уберегут вас от потенциальной возможности изменения формата хранения информации. И это справедливо для любого другого движка, если там вообще такое возможно. Просто тут у вас такой выбор есть, и это большой полюс.

Если процесс ресурсоёмкий, т.е. материалов много и часто надо импортировать, пишите свой модуль.
Если нет и наберёте нужный функционал, используйте имеющиеся...

Аватар пользователя DenisVS DenisVS 11 ноября 2011 в 14:28

Я понял. В том-то и вопрос был, "как правильно". Чтобы не изобретать велосипеды и не забивать гвозди микроскопами.

Аватар пользователя Crea Crea 11 ноября 2011 в 16:08

Правильно всегда через API. Но реальность решает, а не теоретическая правильность. Если импорт через API работает слишком медленно, приходится напрямую в базу, и ничего с этим не поделаешь.