Лучшая практика для избежания столкновений имени модуля/темы/профиля?


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

Например, тема и профиль одного сайта называются "деннис"

Это вызывает проблемы с серверами функций и (я подозреваю) с Aegir.

Теперь... относительно легко переименовать любой из них (хотя для различных причины, по которым переименовать профиль заметно проще). Есть ли здесь какая-либо лучшая практика, т. Е. Нормально ли называть тему dennis_theme или профиль dennis_profile? Должен ли я применять это соглашение к обоим или только к одному?

Author: Pierre.Vriens, 2011-03-16

3 answers

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

  • Клиент: Компания Acme & Co
  • Ключ: acme
  • Папка сайта: /путь/к/веб-серверу/сайтам/acme
  • Пользовательские модули: acme_tweaks, acme_form с, acme_blocks, acme_settings
  • Тема: acme_theme
  • Репо: acme.git
  • и т.д....

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

  • theme_tweaks
  • template_suggestions

Наше правило заключается в том, что если оно не может быть применено ко всем нашим клиентским сайтам (по крайней мере, в дальнейшем), то оно не должно входить в theme_tweaks, а в acme_tweaks и т. Д.

 10
Author: electblake, 2011-03-23 18:39:25

Способ избежать конфликтов имен для пользовательских модулей, используемых для определенных сайтов, заключается в использовании имени сайта для создания имени модуля. Например, краткое имя, используемое для "Drupal.org настройки", который представляет собой проект, содержащий модули, используемые специально для drupal.org, является drupalorg, в то время как аналогичный проект, содержащий пользовательские модули для groups.drupal.org является группировкой.

Вы также можете не использовать домен верхнего уровня, если считаете, что будете не создавайте модули для сайтов с доменным именем, которое отличается только для домена верхнего уровня (например bingo.com и bingo.it).

 1
Author: kiamlaluno, 2011-03-16 13:54:46

Конечно, использование проекта "имя_машины" в качестве пространства имен поможет. Сначала я выясняю, какой из модулей, профилей установки, тем (и файлов создания) Я выпущу для широкой публики (github, drupal.org, и т.д.). Те, которые я выпущу, получат общие имена, в то время как другие получат имя ИМЯ_ПРОЕКТА_short_description в качестве имени.

Для проекта сообщества хакеров, который я разрабатываю, общая подтема дзен, которую я разработал, называется "Конвей", в то время как фактическая тема (с использованием Конвея в качестве основы тема) называется "хакер_тема". То же самое касается hacker_event_feature, hacker_install_profile, hacker_distro (специфическая функция дистрибутива, совместимая с , эквивалентная модулю projectname_tweaks, который я вижу повсюду).

 1
Author: Capi Etheriel, 2011-03-16 17:46:14