По данному вопросу подумалось мне следующее:
можно создать не отдельный универсальный модуль, а общий класс с единым интерфейсом для всех модулей.
Супер!
Правда, это не снимает проблемы "висячих" комментариев при удалении или переустановке модуля... правда, работу по их очистке можно возложить на модуль управления модулями... благо что он всего один.
Даже еще проще: удаление комментариев относящихся к модулю можно сделать дополнительным запросом в файле uninstall.sql
А так ли необходимо удаление "висячих" комментариев? Ведь они сами по себе иногда представляют ключевую ценность. Пусть бы себе лежали в базе. Скорее всего, я чего-то «не догоняю», но:
Вдруг возникнет необходимость вернуть модуль на место вместе со всеми комментариями? И нельзя ли в связи с этим ввести дополнительный параметр модуля (и соотв. поле в таблице комментариев), который будет разрешать/блокировать вывод комментариев?