Обновления модуля ставятся друг за другом в строгом соответствии с версией. Каждое обновление содержит лишь изменение по сравнению с предыдущим. Настоятельно рекомендуется при каждом выпуске обновления эмулировать самые различные ситуации для тестирования. Например, перед выпуском установить обновления и на чистые дистрибутивы разных версий, и на рабочие сайты.
Файлы папки с обновлением:
/install/version.php
- файл содержит номер версии обновления и дату его выпуска. Обязательный файл.<b>,<i>,<u>,<li>,<ul>,<span>,<p>, <br>
iblock,13.8.0
. Это означает, что данное обновление будет установлено, если в системе установлен модуль Информационные блоки версии не ниже 13.8.0. Либо модуль Информационные блоки не установлен вообще. Необязательный файл.Перед загрузкой модуля на сайт необходимо запаковать сборку обновления модуля в архив. Для этого выполните следующее:
В результате должно получиться, например, 0.0.2.zip, 0.0.5.zip. Например, папка с обновлением может иметь следующую структуру: | ![]() |
/bitrix/modules/
, а также файлы системных компонентов: /bitrix/components/bitrix/
.Все файлы обновления просто копируются как есть в папку модуля. И если ваш модуль полностью расположен в этом каталоге, то обновление завершено. Если же по логике работы модуля требуется чтобы часть файлов была вне ядра, к какой-либо другой папке, то с помощью updater.php нужно перенести их в нужное место.
Механизм апдейтеров (updater.php) служит именно для того, чтобы применить необходимые изменения к тем частям сайта, которые не являются ядром. С помощью этого механизма можно привести структуру базы данных, системные и публичные файлы в соответствие с текущей версией ядра.
Если возникла необходимость скопировать файлы в обновлении самостоятельно, то нужно использовать:
$updater->CopyFiles("install/classes", "modules/quintura.search/classes");
В этом случае файлы из папки /install/classes
, находящиеся в папке обновления, скопируются в папку /bitrix/modules/quintura.search/classes
.
Если при выпуске последующих обновлений возникла потребность установить зависимость его от новых модулей, то необходимо помнить, что обновление с зависимостью не будет требовать установки указанных модулей. В этом случае возможны два варианта:
$errorMessage
строку сообщения.export COPYFILE_DISABLE=true