notamedia / console-jedi

Console application for Bitrix Framework
MIT License
86 stars 26 forks source link

Module commands #8

Closed nook-ru closed 8 years ago

nook-ru commented 8 years ago

Implements #4

may-cat commented 8 years ago

Хорошая тема

nook-ru commented 8 years ago

@niksamokhvalov, установку модулей в env:init перепишу с использованием module:load?

niksamokhvalov commented 8 years ago

Отлично, давай!

nook-ru commented 8 years ago

Для CI наверное лучше такой конфиг сделать:

<?php

/* Example settings file config.php: */

return [
    // module commands to execute
    'modules' => [
        'load' => [
            'project.main',
        ],
        'register' => [
            'vandor.module',
        ],
        'update' => [
            'vandor.module',
        ],
        'unregister' => [
            'vandor.module',
        ],
    ],
];
niksamokhvalov commented 8 years ago

Неа, так нельзя делать, собираюсь даже отдельный коммент с предупреждением написать в environments. Нельзя, потому что установка и удаление модулей — это операции изменения БД, которые должны производиться только через миграции.

Установка модулей через настройки окружений не годна для продакшена, но хороша для дева и теста. Например, так можно установить какой-нибудь модуль для дебага или автотестов. Поэтому лучше оставить текущую схему: если модуль прописан в настройках окружения, нужно выкачать его (если оного нет) и установить (если не установлен).

niksamokhvalov commented 8 years ago

Ещё кажется полезным вынести логику управления модулями в отдельный класс — менеджер модулей. Тогда команды у тебя станут «тоньше», а так же можно будет использовать менеджер модулей в любом другом месте проекта (да, например, в миграциях).

nook-ru commented 8 years ago

Ещё кажется полезным вынести логику управления модулями в отдельный класс

Сделал.

С обновлениями есть одна неудобная особенность — нужно перезапускать процесс php после каждого установленного обновления. Следующие обновления, если они есть, должны выполняться с новыми определениями классов и функций модуля. Более красивого решения не нашел.

niksamokhvalov commented 8 years ago

Супер, забираю. Спасибо!