Интеграция веб-приложений с Drupal - PullRequest
5 голосов
/ 10 ноября 2009

Мы хотим создать веб-приложение, специфичное для нашего домена, но также включающее в это приложение форумы, блоги и т. Д. Также требуются некоторые точки интеграции в Twitter и Facebook. Также будет настольное приложение, которое подключается к нашему веб-приложению для загрузки данных и загрузки конфигурации и отчетов.

Вопрос в том, можем ли мы расширить Drupal для размещения как обычных модулей, так и нашего веб-приложения? (Там будут бизнес-объекты и их свойства и ежедневные данные, загруженные из настольного приложения) Или Drupal может быть интегрирован с внешними приложениями? Например, пользователи и роли должны быть одинаковыми и согласованными для обоих. Мы также можем запросить данные из веб-приложения для поиска в Drupal.

Я знаю, что это немного расплывчато, но я не могу рассказать больше. Я очень новичок в управлении контентом, и я просто хотел узнать, создал ли кто-то такое приложение.

Ответы [ 4 ]

17 голосов
/ 11 ноября 2009

Я пытаюсь перефразировать то, что вы написали, просто чтобы вы убедились, что я правильно понял ваш вопрос. Вам необходимо создать веб-приложение, которое:

  1. Реализует некоторые стандартные функции Drupal
  2. Имеют некоторые пользовательские функции, которые должны "сливаться" с Drupal (те же пользователи, те же разрешения и т. Д.) *
  3. Возможность загружать / скачивать контент (или данные) из настольных приложений.

Если я вас правильно понял, краткий ответ: Да, вы можете сделать это с Drupal .

Теперь для обширного: - Drupal имеет буквально тысячи модулей, поэтому я ожидаю, что вы получите большинство вещей, которые вы хотите, просто установив правильную комбинацию легкодоступных модулей. - Конечно, любой пользовательский функционал может быть легко реализован в виде модуля (вполне стандартная вещь в наши дни). - Взаимодействие с настольным приложением обычно осуществляется через webservices , а не напрямую обращается к БД. Drupal изначально поставляется с сервером и клиентом xmlrpc, но вы можете перейти на SOAP - если хотите - с помощью пары модулей contrib.

Некоторые дополнительные мысли:

  • Если вы решите использовать Drupal и начнете с нуля, вы должны знать, что вам и вашей команде нужно посвятить некоторое время и усилия, чтобы понять, как работает Drupal. Хотя - в отличие от Палантира - я застрял с Drupal, я согласен с ней / с ним в том, что Drupal усложняет усложняет сложность сразу же после биты . Это компромисс, который вы должны заплатить, чтобы иметь платформу, которая - будьте уверены - очень гибкая, чрезвычайно подключаемая и надежная (иначе она не использовалась бы для перепроектирования * 1028) * Белый дом , ни Drupal не получат второй год подряд награду «Лучшая PHP CMS», я полагаю).
  • Хорошая новость: есть несколько отличных книг, и я, безусловно, рекомендую «Pro Drupal Development» для всестороннего и всестороннего объяснения системы. Только убедитесь, что получили 2-е издание, поскольку первое имеет дело с уже устаревшими 5-ю серорами. Это сказал ...
  • Очень хорошая вещь в Drupal, по крайней мере, на мой взгляд, заключается в том, что большинство настроек, которые вам, возможно, потребуется сделать для существующей функциональности, могут быть реализованы путем подключения к исходному коду из пользовательского модуля. Это IMO - самое большое преимущество Drupal: вам никогда не нужно трогать код других разработчиков для достижения ваших целей, а это означает, например, что вы сможете поддерживать свои основные и дополнительные модули в актуальном состоянии, не нарушая никаких настройка, которую вы могли бы сделать.
  • Друпал тяжелый. По сравнению с другими CMS он отнимает много вычислительной мощности и оперативной памяти с вашего сервера, и - если у вас не будет очень маленького сайта - я рекомендую развертывать его вместе с nginx, а не с Apache.
  • Drupal хорошо масштабируется, благодаря хорошему механизму кэширования и механизмам «дросселирования». Как ни странно, Drupal очень хорошо масштабируется на сайтах с большим трафиком, так что значительное увеличение трафика не обязательно означает значительное увеличение использования ресурсов.
  • Пользовательский опыт на сайте Drupal довольно плохой. В настоящее время проводится огромная работа над этим ( здесь и здесь (видео) ), но улучшения не будут доступны, пока не выйдет D7 [скоро, но тогда вы придется подождать, пока модули будут портированы], поэтому желательно выделить некоторое время для создания административной темы, если администраторы вашего сайта не будут технического типа.

В конце концов, мой совет: если ваш сайт станет большим / сложным / со сложной бизнес-логикой и большим количеством функциональных возможностей, то Drupal, вероятно, является хорошим кандидатом . Если ваш сайт, напротив, является мелкомасштабным со стандартной функциональностью и несколькими пользовательскими элементами, возможно, Wordpress / Joomla подойдет вам лучше (не потому, что они «менее мощные», а потому, что сильные стороны Drupal в этом случае не будут использоваться, в то время как Wordpress / Более простая архитектура Joomla, вероятно, представляет преимущество в этом сценарии]

Другими вариантами, безусловно, могут быть такие фреймворки, как, например, CakePHP или Django, но это - IMO - я бы сказал, совершенно другой подход к этому вопросу.

7 голосов
/ 11 ноября 2009

Краткий ответ: Drupal хорошо подходит для создания чего-то подобного, особенно если вы хотите интегрировать свое приложение / логику в Drupal в виде набора пользовательских модулей.Другой способ, интеграция Drupal во внешнее приложение, также может быть реализован, но даст вам больше трения, поскольку архитектура Drupals в значительной степени ориентирована на то, чтобы быть фреймворком сама по себе.


Более длинный ответ: У меня довольно противоположное мнение / опыт по сравнению с Палантирами.Я работаю почти исключительно с Drupal уже год, в контексте двух довольно сложных / «предприимчивых» проектов (после нескольких лет использования «на стороне» для небольших вещей).Хотя я согласен с тем, что он налагает некоторые жесткие правила (но не ограничения!), Я считаю это преимуществом, поскольку эти правила дают четкое руководство и обеспечивают проверенные способы действий.Три части, упомянутые Палантиром, являются хорошими примерами для этого:

  • Система меню - Обеспечивает хорошо структурированный и эффективный механизм диспетчеризации, который легко расширить с помощью ваших собственных вещей, предоставляя при этом огромную гибкость для настройки / манипулирования существующими./ пути по умолчанию.(Обратите внимание, что «система меню» в Drupal обозначает всю тему управления вашим пространством URL, а не только подмножество «видимых» меню, которое обычно ассоциируется с термином)
  • API форм - декларативный подход к вебуформы, с хорошо разработанным рабочим процессом обработки и множеством встроенных функций безопасности, которые вы бы иначе позаботились о себе.Также расширяемый, с прямыми опциями для настройки / расширения уже существующих форм по требованию, добавления новых правил проверки для любых полей или целых форм, многошаговых форм, корректировок форм на основе JavaScript и т. Д.
  • Система перевода - этодовольно сложно, просто потому, что интернационализацию сложно сделать.Но он встроен, снова давая четкие указания о том, как что-то делать, чтобы работать в общем виде (хотя есть проблемы с довольно многими предлагаемыми модулями, которые не используют / поддерживают его так, как должны).

Я мог бы привести больше примеров для частей, в которых я ценю «правила», но этот пост уже становится длинным, и мне все еще приходится освещать некоторые недостатки;)

Итак, подведем итогна позитивную часть - если бы я дал грубые спецификации, которые вы опубликовали, я бы сказал «без проблем» и согласился бы с Drupal, будучи уверенным, что это будет прочной основой для нестандартных деталей, предоставляя при этом все ».стандарты, такие как форум, блоги, интеграция с твиттером / фейсбуком и многие, многие другие в форме уже существующих решений (даже если для них может потребоваться некоторая адаптация / настройка).


Недостатки: Как всегда, есть недостатки, и некоторые из них существенны, в зависимости от требований / обстоятельств.

  • Кривая обучения - Drupal iЭто довольно сложно, и для «понижения» его понятий требуется время.«Игра с ним в течение недели», как полагает Палантир, безусловно, даст вам общее ощущение / общее впечатление, но этого ни в коем случае недостаточно для серьезного суждения о его плюсах и минусах, поскольку они будут появляться только при кодированиив / для него.Так что, если вы уже хорошо знакомы с устоявшейся средой веб-разработки, это может быть проблемой.В любом случае, если вам нужно изучить его, это должно стать меньшей проблемой.
  • Ограничения базы данных - Начиная с Drupal 6, поддержка баз данных осуществляется только для MySQL или PostgreSQL, используя специальный уровень абстракции для Drupal (который, очевидно, не't one;)
    Drupal 7 перейдет в PDO, что должно (наконец) положить конец этому сомнительному состоянию.
  • Тестовые / этапные / производственные миграции - гибкость компонентов Drupals «из коробки» обусловлена ​​множеством настроек, которые можно конфигурировать в административном бэкэнде, что подразумевает, что многие важные параметры конфигурации хранятся в базе данных. Это делает миграцию данных и / или конфигурацию между несколькими экземплярами довольно трудной / утомительной, после того как вы вышли из (ранних) этапов разработки, где вы можете уйти с полным выполнением операций дампа / восстановления (см., Например, этот вопрос и ответы )

Это основные для меня, но вы, вероятно, найдете больше:)

3 голосов
/ 10 ноября 2009

Я работал более года, широко используя drupal, но в итоге я отказался от него. Drupal и другие системы CMS имеют очень жесткие ограничения и правила. Я бы использовал Drupal для проектов, где у вас есть простые требования и мало или нет бизнес-правил. Drupal усложняется практически сразу, когда вы хотите делать сложные вещи (особенно обратите внимание на систему меню, формы и систему перевода, если вам нужно многоязычность).

Если ваша система действительно будет большой со всеми упомянутыми вами вещами, то я бы лучше использовал PHP-фреймворк для реализации вашей бизнес-логики и интеграции внешних продуктов по мере необходимости (форум, блог, клиент Twitter и т.д ...).

Но совет такой: никому не доверяй :) Скачай и играй с ним неделю. Вы сможете принять решение и быть более уверенным в своем выборе!

0 голосов
/ 10 ноября 2009

Поскольку Drupal с открытым исходным кодом, вы можете делать с ним все, что пожелаете.Однако пара моментов:

Изменение структуры пользователя / роли в Drupal было бы утомительным и ненужным.Вам потребуется аутентификация вашего настольного приложения из базы данных MySQL в Drupal.

Drupal имеет сотни плагинов практически для всего, поэтому Drupal, без сомнения, может выполнять всю "веб" сторону вещей, включая статистику посетителей и т. Д.просто потребуется снова подключить ваше настольное приложение к правильным таблицам MySQL и отобразить данные по желанию.

Не забудьте проверить другие системы управления контентом, такие как Joomla!(и много других).У каждого есть свои плюсы и минусы. www.opensourcecms.com позволяет вам легко тестировать CMS, и я широко использовал его в прошлом.

Просто убедитесь, что сначала были намечены все компоненты.Каждый час планирования заранее экономит много часов головной боли спустя.

...