Документация. Модуль «Эльфа: Миграции» для «1С-Битрикс»

В данном разделе приведена документация для модуля «Эльфа: Миграции». Если у вас есть вопросы по модулю, вы можете обратиться в нашу поддержку.

 

Оглавление

  1. Установка и удаление модуля
  2. Пример файла миграции
  3. Статусы миграций
  4. Хелперы
    1. Elpha\Migration\Helper\AdminHelper — хелпер содержит вспомогательные методы для настройки админки (настройки полей списка, формы);
    2. Elpha\Migration\Helper\AgentHelper — хелпер для агентов;
    3. Elpha\Migration\Helper\ElphaUserSettingsHelper — хелпер модуля «Эльфа: Пользовательские настройки»
    4. Elpha\Migration\Helper\EventHelper — хелпер для почтовых/смс событий;
    5. Elpha\Migration\Helper\HLHelper — хелпер Highload-блоков;
    6. Elpha\Migration\Helper\IBlockHelper — хелпер информационных блоков;
    7. Elpha\Migration\Helper\LangHelper — хелпер для языков в системе;
    8. Elpha\Migration\Helper\OptionHelper — хелпер настроек модулей;
    9. Elpha\Migration\Helper\SiteHelper — хелпер для сайтов;
    10. Elpha\Migration\Helper\UserGroupHelper — хелпер для групп пользователей;
    11. Elpha\Migration\Helper\UserTypeHelper — хелпер пользовательских полей;
    12. Elpha\Migration\Helper\WebFormHelper — хелпер Веб-форм.
  5. Вывод сообщений в миграциях и хелперах
  6. Конфигурации миграций
  7. Создание собственного родительского класса для миграций
  8. Создание хелпера
  9. Создание конструктора миграций
  10. События модуля
  11. Примеры
    1. Итерации в миграциях (выполнение долгих миграций)

Установка и удаление модуля

Модуль устанавливается и удаляется, как любой модуль из маркетплейса. Без дополнительного вмешательства с вашей стороны.

При удалении модуль НЕ удаляет папки/файлы миграций и конфигурации. Происходит удаление таблицы по умолчанию, другие таблицы заданные в конфигурациях НЕ удаляются.

Пример файла миграции

При конфигурации по умолчанию файлы миграций располагаются по следующему пути: при наличии папки /local/php_interface располагаются в /local/php_interface/migration, иначе в /bitrix/php_interface/migration

Пример файла миграции:

        
namespace Elpha\Migration;

class Migration20191113051119 extends AMigration
{

    protected $description = "";

    protected $task = "";

    public function up(): bool
    {
        $helper = $this->getHelperManager();

        return true;
    }

    public function down(): bool
    {
        $helper = $this->getHelperManager();

        return true;
    }
}
        
    

 

Необходимо реализовать два метода:

public function up(): bool — вызывается при установки миграции;
public function down(): bool — вызывается при откате миграции.

Например: для добавления highload-блока необходимо разместить код его создания в методе public function up(): bool, а в методе public function down(): bool код его удаления. Тогда при установке миграции highload-блок будет создан, а при откате миграции highload-блок будет удален.

Методы public function up(): bool и public function down(): bool при успешном выполнении должны возвращать true. Если в процессе выполнения возникла ошибка, метод должен вернуть false или выбросить исключение Elpha\Migration\MigrationException, оно будет перехвачено и обработано как вывод ошибки.

Статусы миграций

  • new — новая миграция (только файл);
  • installed — установленная миграция (файл и запись об установке в БД);
  • unknown — неизвестная миграция (только запись об установке в БД);

Миграцию можно переместить в архив. В архив можно переместить только миграцию в статусах new и installed. При перемещении в архив, файл миграции перемещается в папку archive. В админке архивные миграции отображаются при установленном флаге "Показывать архивные миграции".