У меня есть веб-приложение, построенное с использованием Zend Framework, которое содержит много модулей.Все эти модули являются «необязательными» и используются для обеспечения расширенной функциональности.Некоторые из этих модулей пишут свои собственные журналы и т. Д. Я думал о том, как выполнить установку и удаление behvaiour для этих модулей.
Сначала я хотел предоставить каждому модулю InstallationController
, UninstallController
и т. Д.и пусть они справятся с установкой.Но затем я начал думать о подходе, который включал бы включение каждого модуля в install.ini
, uninstall.ini
и т. Д. Затем ядро обладает функциональностью, позволяющей сократить и действовать в соответствии с ними.Примером uninstall.ini
для файла модуля foo
может быть
[save_logs]
folder.remove.data.foo
folder.remove.modules.foo
file.remove.configs.foo
[complete : save_logs]
file.remove.logs.foo
db.table.truncate.foo_table1
db.table.truncate.foo_table2
Тогда пользователю будет предложено указать опции Complete
или Save Logs
при запуске удаления foo
модуль.Один из плюсов, которые я вижу в этом подходе, - это общая базовая механика, которая обрабатывает все операции, и тот факт, что никакой код на самом деле часть модуля foo
не будет работать во время удаления.
У меня никогда не былораньше делали этот тип поддержки установки / удаления / обновления в веб-приложении, поэтому любые идеи и советы были бы хорошими.