livestreet-framework
livestreet-framework copied to clipboard
Добавить специальный файл-флаг, который раздеактивирует активный плагин ещё на старте движка.
Это нужно если возникла ситуация:
Был активный плагин, пользователь решил его обновить без деактивации, простой заменой файлов. В итоге из-за (например) различия в структуре таблиц сайт падает т.к. не хватает некоторых полей в бд.
Данный файл-флаг обязан будет иметь каждый плагин в каталоге и он будет означать что плагин "новый" и нуждается в принудительной активации с предварительной деактивацией (Если был активен)
Т.е. при старте ядра движок будет для каждого плагина проверять наличие данного файла и если таковой имеется и плагин активирован - сделать принудительную переактивацию или просто деактивацию (что даже лучше).
Т.е. его основная задача "отключить если плагин не тот, что был раньше". При активации плагинов данный файл удалять. А в архиве он всегда есть.
P.S. и делать это как можно раньше до старта ядра чтобы не срабатывали хуки, наследования плагинов. Т.е. ещё при loader.php
А если просто сравнивать версию из бд и xml?
нет, это уже будет запуск ядра, а нужно ещё на глубоком старте, когда ещё окружение не готово и плагины "не начали пускать свои корни в движок" (при полном старте ядра какой-то хук плагина может сработать и упасть на отсутствии поля в бд). поэтому это ещё на уровне loader.php должно быть
Наличие такого файла проблему не решит, т.к. файлы могут быть не доступны для записи. Здесь в любом случае нужна инструкция от плагина, как его обновить - предварительно деактивировать и т.п. Дополнительно в Каталоге можно сделать параметр для версий, который будет указывать API, что перед заливкой версии юзеру, необходимо плагин деактивировать.
Дополнительно в Каталоге можно сделать параметр для версий, который будет указывать API, что перед заливкой версии юзеру, необходимо плагин деактивировать.
думаю что это всегда необходимо - кеш и т.п. или я не понял точно о чем ты