"Bootstrap" переводится как "начальная загрузка" или "предзагрузка". Для создания предзагрузки в Yii2, обычно, создается одноименный файл Bootstrap.php с классом, который должен реализовывать интерфейс BootstrapInterface и его метод bootstrap():
<?php namespace common\modules\languages use yii\base\BootstrapInterface; class Bootstrap implements BootstrapInterface { public function bootstrap($app) { // } }В данном примере, я разместил файл Bootstrap.php в папке common\modules\languages.
Согласно документации, классы предзагрузки подключаются при выполнении метода конструктора класса приложения методом init(). На самом деле класс приложения, например WEB-приложения vendor/yiisoft/yii2/web/Application, использует последовательное наследование вплоть до класса vendor/yiisoft/yii2/base/Object, в котором и объявляется метод init(). Далее метод init() переопределяется уже в базовом классе приложения vendor/yiisoft/yii2/base/Application и вызывает метод bootstrap() данного класса, который и запускает компоненты предзагрузки.
Подключение.
Подключить файл предварительной загрузки можно:1. В одном из конфигурационных файлов Yii2, например frontend/config/main.php:
return [ 'sourceLanguage' => 'ru', // использован в качестве ключей переводов 'id' => 'app-frontend', 'basePath' => dirname(__DIR__), 'bootstrap' => [ 'log', 'common\modules\languages\Bootstrap', ],тут указывается пространство имен подключаемого класса Bootstrap. Соответственно файл Bootstrap.php нужно создать в папке common\modules\languages.
Помимо указания класса Bootstrap, можно указать всего лишь название зарегистрированного компонента, например модуля:
'modules' => [ 'languages' => [ 'class' => 'common\modules\languages\Module', ], ], 'bootstrap' => [ 'log', 'languages' ],Класс данного модуля (languages) так же должен реализовывать интерфейс BootstrapInterface и метод bootstrap().
2. При создании расширения для Yii2, можно указать класс Bootstrap в файле composer.json расширения:
"extra": { "bootstrap": "klisl\\languages\\Bootstrap" },В данном случае, у класса пространство имен «klisl\languages».
3. В "точке входа" - файле index.php.
Фреймворк Yii2 версии Advanced в файлах index.php уже содержит строки подключения файлов bootstrap.php:
require(__DIR__ . '/../config/bootstrap.php');Файлы содержатся в соответствующих папках и в них можно включить нужный код, который не связан с фреймворком и его компонентами т.к. в этих файлах не будет доступа к объекту приложения (Yii::$app и др.) – файлы подключаются до инициализации приложения. Для версии Basic можно создать и подключить аналогичные файлы в index.php.