Регулювання ваги модуля: на які ризики та на що слід звернути увагу?


14

Сьогодні я змінив вагу мого користувальницького модуля, щоб змінити спосіб виконання гаків (ho__form_alter). Я змінив вагу на 1 значення важче, ніж вага іншого модуля. Це здавалося найбезпечнішим, що можна зробити замість того, щоб надати йому «випадкову» вагу 100. Оригінальний модуль є основним модулем (переклад), тому я сподіваюся, що я нічого не зламав.

Регулюючи вагу модуля з метою зміни порядку виконання гачків, на що слід звернути увагу і які ризики пов'язані?

Що я можу придумати: небажана поведінка внаслідок високої зв’язки.

Відповіді:


10

Ну, немає загальної відповіді на це, це дійсно залежить від модулів. Деякі речі, які я б взяв до уваги (в Drupal 6):

  • причіпка_boot викликається під час завантаження модулів; тому були включені лише модулі, легші за вас. Якщо ви покладаєтесь на код іншого модуля, який важчий за вас, переконайтеся, що ви включите їх вручну.

  • Якщо модуль за замовчуванням має вагу, відмінну від 0, це означає, що цей модуль спеціально встановив цю вагу. Перевірте .install файл цього модуля, оскільки це, швидше за все, там, де встановлено вагу, - і трохи удачі з’явиться коментар, що пояснює, чому! (це може бути правдою, навіть якщо вага дорівнює нулю)

  • Модулі, що встановлюють або дуже низьку, або дуже високу вагу, зазвичай мають вагомі причини для цього ( повинні працювати до / після всього іншого). Зазвичай модулі розробки роблять це, хоча й інші можуть. Зберігайте ці модулі першими / останніми, якщо у вас немає вагомих причин для цього.

  • Подивіться на залежність модуля (ті, від яких залежить модуль, і ті, від яких залежить цей модуль). В ідеалі підтримуйте ці модулі в одному порядку. Якщо потрібно змінити порядок, єдиний спосіб зрозуміти наслідки - подивитися на код.

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


1
Будь-які відмінності для Drupal 7?
DrCord

3

Я, чесно кажучи, не думаю, що на це є загальна відповідь. Те, що відбувається, коли ви регулюєте вагу модуля, сильно залежить від модулів, які використовуються, і якщо ви зміните вагу занадто багато модулів, я б уявив, що ви можете отримати непередбачувані результати.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.