livestreet-framework icon indicating copy to clipboard operation
livestreet-framework copied to clipboard

Добавить специальный файл-флаг, который раздеактивирует активный плагин ещё на старте движка.

Open psnet opened this issue 10 years ago • 4 comments

Это нужно если возникла ситуация:

Был активный плагин, пользователь решил его обновить без деактивации, простой заменой файлов. В итоге из-за (например) различия в структуре таблиц сайт падает т.к. не хватает некоторых полей в бд.

Данный файл-флаг обязан будет иметь каждый плагин в каталоге и он будет означать что плагин "новый" и нуждается в принудительной активации с предварительной деактивацией (Если был активен)

Т.е. при старте ядра движок будет для каждого плагина проверять наличие данного файла и если таковой имеется и плагин активирован - сделать принудительную переактивацию или просто деактивацию (что даже лучше).

Т.е. его основная задача "отключить если плагин не тот, что был раньше". При активации плагинов данный файл удалять. А в архиве он всегда есть.

P.S. и делать это как можно раньше до старта ядра чтобы не срабатывали хуки, наследования плагинов. Т.е. ещё при loader.php

psnet avatar Sep 17 '14 00:09 psnet

А если просто сравнивать версию из бд и xml?

Modifikator avatar Sep 17 '14 00:09 Modifikator

нет, это уже будет запуск ядра, а нужно ещё на глубоком старте, когда ещё окружение не готово и плагины "не начали пускать свои корни в движок" (при полном старте ядра какой-то хук плагина может сработать и упасть на отсутствии поля в бд). поэтому это ещё на уровне loader.php должно быть

psnet avatar Sep 17 '14 01:09 psnet

Наличие такого файла проблему не решит, т.к. файлы могут быть не доступны для записи. Здесь в любом случае нужна инструкция от плагина, как его обновить - предварительно деактивировать и т.п. Дополнительно в Каталоге можно сделать параметр для версий, который будет указывать API, что перед заливкой версии юзеру, необходимо плагин деактивировать.

mzhelskiy avatar Sep 17 '14 02:09 mzhelskiy

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

думаю что это всегда необходимо - кеш и т.п. или я не понял точно о чем ты

psnet avatar Sep 17 '14 03:09 psnet