Вы, вероятно, читали об обновлениях в Cotonti и знаете, как обновлять систему в целом. В этой статье обновление расширений рассматривается подробно. Слово "расширение" означает "модуль" или "плагин" в Cotonti.
#1. Когда расширения обновляются
Расширения обновляются в двух случаях:
- Когда вы запускаете скрипт install.php, чтобы обновить вашу систему, как описано здесь. В этом случае скрипт обновления проверяет версии всех установленных расширений и версии setup-файлов на диске и обновляет только те из них, для которых доступна более новая версия (по номеру версии).
- Когда вы нажимаете на кнопку "Обновить" в Администрировании → Расширениях → Extension_name. В этом случае система пытается обновить расширение вне зависимости от установленной и доступной версий.
Строго рекомендуется использовать функцию "Обновить" вместо переустановки расширений. Переустановка была необходима в Cotonti 0.6.x, но более не нужна. Обновление работает гораздо разумнее.
#2. Процесс обновления отдельного расширения
Для каждого обновляемого расширения Cotonti выполняет следующее:
- Вычисляет разницу между установленной в базе версией расшерения и версией setup-файла (extension_name.setup.php).
- Удаляет текущие хукочасти расширения и устанавливает все заново. Это нужно, если в расширении появились новые части или если старые были удалены / изменилась мета-информация (например, используемые хуки).
- Обновляет конфигурацию. Добавляет новые опции, если таковые появились. Удаляет опции, которые были удалены из расширения. Изменяет и сбрасывает те опции, для которых изменился тип. Остальные опции оставляет неизменными.
- То же самое производит с конфигурацией структуры.
- Обновляет маски Auth/Lock для групп 'members' и 'guests'.
- Выполняет PHP и SQL патчи из папки setup последовательно, исходя из различий установленной и новой версии.
- Обновляет версию плагина в базе и очищает кеш.