Лучшая практика для избежания столкновений имени модуля/темы/профиля?
В настоящее время наш код управляется таким образом, что у каждого сайта есть своя тема и профиль установки. Они естественным образом эволюционировали таким образом, что названия этих элементов (и их каталогов), как правило, совпадают.
Например, тема и профиль одного сайта называются "деннис"
Это вызывает проблемы с серверами функций и (я подозреваю) с Aegir.
Теперь... относительно легко переименовать любой из них (хотя для различных причины, по которым переименовать профиль заметно проще). Есть ли здесь какая-либо лучшая практика, т. Е. Нормально ли называть тему dennis_theme или профиль dennis_profile? Должен ли я применять это соглашение к обоим или только к одному?
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
и т. Д.
Способ избежать конфликтов имен для пользовательских модулей, используемых для определенных сайтов, заключается в использовании имени сайта для создания имени модуля. Например, краткое имя, используемое для "Drupal.org настройки", который представляет собой проект, содержащий модули, используемые специально для drupal.org, является drupalorg, в то время как аналогичный проект, содержащий пользовательские модули для groups.drupal.org является группировкой.
Вы также можете не использовать домен верхнего уровня, если считаете, что будете не создавайте модули для сайтов с доменным именем, которое отличается только для домена верхнего уровня (например bingo.com и bingo.it).
Конечно, использование проекта "имя_машины" в качестве пространства имен поможет. Сначала я выясняю, какой из модулей, профилей установки, тем (и файлов создания) Я выпущу для широкой публики (github, drupal.org, и т.д.). Те, которые я выпущу, получат общие имена, в то время как другие получат имя ИМЯ_ПРОЕКТА_short_description в качестве имени.
Для проекта сообщества хакеров, который я разрабатываю, общая подтема дзен, которую я разработал, называется "Конвей", в то время как фактическая тема (с использованием Конвея в качестве основы тема) называется "хакер_тема". То же самое касается hacker_event_feature, hacker_install_profile, hacker_distro (специфическая функция дистрибутива, совместимая с , эквивалентная модулю projectname_tweaks, который я вижу повсюду).