Closed nook-ru closed 8 years ago
Хорошая тема
@niksamokhvalov, установку модулей в env:init
перепишу с использованием module:load
?
Отлично, давай!
Для 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',
],
],
];
Неа, так нельзя делать, собираюсь даже отдельный коммент с предупреждением написать в environments. Нельзя, потому что установка и удаление модулей — это операции изменения БД, которые должны производиться только через миграции.
Установка модулей через настройки окружений не годна для продакшена, но хороша для дева и теста. Например, так можно установить какой-нибудь модуль для дебага или автотестов. Поэтому лучше оставить текущую схему: если модуль прописан в настройках окружения, нужно выкачать его (если оного нет) и установить (если не установлен).
Ещё кажется полезным вынести логику управления модулями в отдельный класс — менеджер модулей. Тогда команды у тебя станут «тоньше», а так же можно будет использовать менеджер модулей в любом другом месте проекта (да, например, в миграциях).
Ещё кажется полезным вынести логику управления модулями в отдельный класс
Сделал.
С обновлениями есть одна неудобная особенность — нужно перезапускать процесс php после каждого установленного обновления. Следующие обновления, если они есть, должны выполняться с новыми определениями классов и функций модуля. Более красивого решения не нашел.
Супер, забираю. Спасибо!
Implements #4