notamedia / console-jedi

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

Наследование окружений #14

Open mmjurov opened 8 years ago

mmjurov commented 8 years ago

Было бы удобно иметь возможность унаследоваться от одного из окружений и создать на его основании свое.

Для файла конфигурации окружения это в целом можно решить, если подключить файл с конфигом из соседнего окружения

$config = include_once __DIR__ . '/../development/config.php';

//Изменяем лиц. ключ, например
$config['licenseKey'] = 'SM6-NA-TZK5RLUH0F24JWVL';

return $config;

Однако такой фокус не прокатит с файлами, которые переносятся в проект вместе с инициализацией окружения.

Но, я думаю, можно было бы решить эту задачу с помощью доработки. Сделать для окружения какую-то дополнительную настройку, например parent:

environments/index.php:

return [
    'development' => [
        'name' => 'Development',
        'path' => 'development',
    ],
    'production' => [
        'name' => 'Production',
        'path' => 'production',
    ],
   'test' => [
        'name' => 'Test',
        'path' => 'test',
        'parent' => 'development'
    ],
];

В этом случае при выполнении команды env:init нужно сначала проанализировать выбранное окружение и всех его родителей, отрезолвить результирующий файл с конфигом окружения, а также перечень файлов для копирования, после чего на основании этого "виртуального" конфига выполнить инициализацию окружения.

Как думаете, нужная такая функциональность, и возможно ли ее реализовать?

niksamokhvalov commented 8 years ago

Интересная задумка. Технических ограничений для реализации не вижу.