Skip to content

Список статей

Magento: корректное удаление модуля

Magento продолжает набирать популярность, что привлекает всё больше и больше разработчиков. Несомненно это хорошо, но, в то же время, появляется множество модулей для Magento, платные и бесплатные, совершенно уникальные и дублирующие друг-друга, качественно написанные и не очень... список можно продолжать, но заметка не об этом :)

В сложившейся ситуации всё чаще появляется необходимость не только находить и устанавливать новые модули, но и удалять либо отключать уже установленные. Как корректно отключить либо полностью удалить установленный кастомный модуль?

Если расширение установлено с помощью Connect Manager, всё просто, в этом же менеджере - находим нужный модуль / Actions - Uninstall. Всё просто.
Если это кастомный модуль установленный вручную, либо же написанный для вас под заказ - Connect менеджер не поможет.

Сразу скажу, что вариант пойти в админку и отключить модуль там - не вариант. System -> Configuration -> Advanced -> Disable Modules Output, как видно из названия, лишь отключает / запрещает вывод модуля, но весь код, с перекрытиями классов, обсерверами, конфликтами :) и тп отработает как и прежде, просто метод toHtml не будет.

Остается два варианта. Первый - найти в app/etc/modules/ файл конфигурации желаемого модуля и в нем поправить строчку true true на false соответственно. Таким методом модуль полностью отключается, Magento попросту игнорирует данный модуль. Как видно - это самый простой и быстрый способ.

Если вас раздражает присутствие множества отключенных модулей в файловой системе, которые "загрязняют" проект, тогда остается вариант удалить все файлы модуля из проекта вручную, что не всегда просто.
Итак, не спешите удалять "очевидные" файлы.

Сначала стоит изучить какие лайоуты, темплейты и возможно JS файлыи принадлежат модулю. Предлагаю начать поиски в файле Modulename/etc/config.xml в разделе frontend -> layout -> updates, если такой раздел существует - вы получите имя файла лайоутов который нужно будет также удалить, предварительно заглянув в него, чтобы найти зависимые темплейты и, если таковые есть, подгружаемые JS.
Также используемые файлы темплейтов модуля можно найти в классах блоков модуля.

Только после исследования следует приступать непосредственно к удалению файлов (предварительно сделав бэкап проекта )

Если модуль написан аккуратно - риск минимальный. Но бывают случаи, когда модуль плотно интегрируется с существующим кодом (например была изменена структура коровских таблиц в базе данных) и тогда отключение / удаление такого модуля может привести к частичной либо полной неработоспособности всего проекта. В таких случаях без привлечения программистов не обойтись.

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

2011-12-26 11:15:00