В компоненте, который реализует интерфейс \yii\base\BootstrapInterface присоединено событие в методе bootstrap(). Этот компонент грузится всегда при загрузке приложения. Больше нигде не вызывается.
Каким образом можно получить экземпляр этого компонента (тот, что был загружен вместе с приложением через bootstrap)?
Как можно отсоединить событие у этого компонента из другого класса?
отсоединить обработчик https://yiiframework.com.ua/ru/doc/guide/2/concept... но учитывая что он вешается в бутстрапе скорее всего отключать его придется тоже в бутстрапе или как-то на уровне конфига.
Получить экземпляр компонента Yii::$app->get('componentId') или Yii::$container->get('component-class-name') по ситуации нужно смотреть
Благодарю за Yii::$container->get('component-class-name'). Вариант с Yii::$app->get('componentId') не работает, видимо из-за того, что в bootstrap прописан именно класс. Думаю, теперь отсоединить обработчик события смогу без проблем.
И все-таки пришлось добавить этот компонент в массив components в конфиге, а в bootstrap вызывать по id. Иначе событие не отвязывается. Подозреваю, что Yii::$container->get('component-class-name') возвращает другой объект класса, а не тот, что вызывается из bootstrap по имени класса. Если в bootstrap вызывать компонент по id, то этот же объект доступен через Yii::$app->get('componentId'). Но все равно спасибо