Pull to refresh
4
0
Андрей Васильев @hiqsol

Программист

Send message

Уточните, пожалуйста, от чего? Я, похоже, что-то пропустил.

Всё же очень рекомендую ознакомиться со статьёй по ссылке в предисловии.

Пример такого плагина (с модулем) — yii2-module-pages

Если у Вас просто один большой репозиторий и Вы не планируете переиспользовать его части, то composer-config-plugin ни к чему, advanced шабон уже предоставляет удобный и привычный способ сборки конфига.
Но если вы хотите переиспользовать Ваш модуль в разных проектах, план такой:


  • создать расширение содержащее этот модуль, подробнее об этом в документации
  • добавить необходимые конфиги, например: src/config/params.php, scr/config/common.php, src/config/web.php, ...
  • перечислить эти конфиги в composer.json:
    "extra": {
        "config-plugin": {
            "params": "src/config/params.php",
            "common": "src/config/common.php",
            "web": "src/config/web.php"
        }
    }

Всё. Плагин готов. Теперь чтобы использовать его в проекте надо:


  • подключить плагин composer'ом:
    "require": {
        "me/my-plugin": "*@dev"
    }
  • использовать конфиг собранный composer-config-plugin'ом:
    $config = require hiqdev\composer\config\Builder::path('web');
    (new yii\web\Application($config))->run();

    учитывая что в Вашем случае не весь конфиг будет собран composer-config-plugin'ом Вам может понадобиться смержиться с уже имеющимся конфигом, приблизительно так:

    $main_config = [...];
    $plugin_config = require hiqdev\composer\config\Builder::path('web');
    $config = ArrayHelper::merge($plugin_config, $main_config);
    (new yii\web\Application($config))->run();


Я что-то не понял, а модули чем неугодили?

Всем угодили. Но это другой уровень организации кода, перпендикулярный расширению.
Модуль — это единица кода, класс. А расширение — это код выделенный в composer-пакет.
Расширение может содержать модули, а может не содержать. И т.д.


И в чем разница между копипастом настроек "плагина" и расширения?

Плагин — это расширение + конфигурация необходимая для его работы.
Composer-config-plugin собирает (мержит) конфиги всех плагинов избавляя от необходимости их копировать.

Можно и так, это не меняет сути описанного в статье.

Да, fxp утомил и не только тормозами.
Прекращать совершенно не планируем!
Ресурсов он не потребляет, а сертификаты теперь бесплатно дают.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity