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

drupal.stackexchange https://drupal.stackexchange.com/questions/851

  •  16-10-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

  • theme_tweaks
  • template_suggestions

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

Другие советы

Способ избежать столкновений имен для пользовательских модулей, которые используются для определенных сайтов, - это использовать имя сайта для создания имени модуля. Например, короткое название, используемое для «настройки drupal.org», которое является проектом, содержащим модули, используемые специально на drupal.org, является Drupalorg, в то время как аналогичный проект, содержащий пользовательские модули для Groups.drupal.org GroupsDrupalorg.

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

Конечно, использование проекта «machine_name» в качестве пространства имен поможет. В первую очередь я выясняю, какой из модулей, устанавливайте профили, темы (и маркировку) я выпущу для публики (github, drupal.org и т. Д.). Те, которые я выпущу, получают общие имена, в то время как другие получают projectname_short_description в качестве имени.

Для проекта Hacker Community, который я разрабатываю, общая дзенская подтема, которую я разработал, называется «Conway», в то время как фактическая тема (используя Conway в качестве базовой темы) называется «Hacker_theme». То же самое касается Hacker_event_feature, Hacker_install_profile, Hacker_distro (a Комплект-Поотвалифицированная специфическая функция распределения, эквивалентная модулю projectName_tweaks, который я вижу везде).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top