Регулировка веса модуля: какие риски и на что нужно обратить внимание?

14

Сегодня я изменил вес моего пользовательского модуля, чтобы изменить метод выполнения ловушек (hook_form_alter). Я изменил вес на 1 значение, более тяжелое, чем вес другого модуля. Это казалось наиболее безопасным делом вместо того, чтобы придать ему «случайный» вес 100. Исходный модуль - это основной модуль (перевод), поэтому я надеюсь, что ничего не сломал.

При настройке веса модуля с целью изменения порядка выполнения хуков, на что обращать внимание и какие риски связаны с этим?

Что я могу думать о: нежелательное поведение как результат высокого сцепления.

Барт
источник

Ответы:

10

Ну, нет общего ответа на это, это действительно зависит от модулей. Некоторые вещи, которые я бы принял во внимание (в Drupal 6):

  • hook_boot вызывается при загрузке модулей; поэтому включены только те модули, которые легче, чем вы. Если вы полагаетесь на код из другого модуля, который тяжелее вас, убедитесь, что вы включили их вручную.

  • Если модуль по умолчанию имеет вес, отличный от 0, то это означает, что этот модуль специально устанавливает этот вес. Проверьте файл .install этого модуля, так как это, скорее всего, там, где установлен вес - и, если повезет, будет комментарий, объясняющий почему! (это может быть правдой, даже если вес равен нулю)

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

  • Посмотрите на зависимости модуля (те, от которых зависит модуль, и те, которые зависят от этого модуля). В идеале держите эти модули в том же порядке. Если вам нужно изменить порядок, единственный способ понять последствия - посмотреть на код.

  • Используй здравый смысл. Информация, добавляемая модулем (скажем, к узлу при загрузке узла), не будет доступна модулям, которые легче этого.

Netuxo Ltd
источник
1
Есть ли отличия для Drupal 7?
DrCord
3

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

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

Lendrick
источник