Загрузка приложений
Загрузка приложений (bootstrapping) — это процесс подготовки среды перед началом обработки входящего запроса приложением. Загрузка выполняется в двух местах: в скрипте входа и в приложении.
В скрипте входа регистрируются загрузчики классов для разных библиотек. Сюда входит загрузчик Composer через его autoload.php файл и загрузчик Yii через его Yii файл класса. Затем скрипт входа загружает конфигурацию приложения конфигурацию и создаёт экземпляр приложения приложения.
В конструкторе приложения выполняется следующая работа по загрузке:
- Вызывается preInit(), который настраивает некоторые свойства приложения с высоким приоритетом, такие как basePath.
- Регистрируется обработчик ошибок обработчик ошибок.
- Инициализируются свойства приложения с использованием заданной конфигурации приложения.
-
Вызывается init(), который, в свою очередь, вызывает bootstrap() для запуска компонентов загрузки.
- Включается файл манифеста расширения
vendor/yiisoft/extensions.php. - Создаются и запускаются компоненты загрузки, объявленные расширениями.
- Создаются и запускаются компоненты приложения и/или модули, которые объявлены в свойстве загрузки приложения свойстве загрузки.
- Включается файл манифеста расширения
Поскольку работа по загрузке должна быть выполнена перед обработкой каждого запроса, очень важно, чтобы этот процесс был лёгким и оптимизированным по возможности.
Старайтесь не регистрировать слишком много компонентов загрузки. Компонент загрузки нужен только в том случае, если он хочет участвовать во всём жизненном цикле обработки запроса. Например, если модулю необходимо зарегистрировать дополнительные правила разбора URL, он должен быть указан в свойстве загрузки свойстве загрузки, чтобы новые правила URL могли вступить в силу до их использования для обработки запросов.
В режиме производства включите кэш байткода, например, PHP OPcache или APC, чтобы свести к минимуму время, необходимое для включения и разбора файлов PHP.
В некоторых больших приложениях есть очень сложные конфигурации приложения конфигурации, которые разделены на множество небольших файлов конфигурации. В этом случае рассмотрите возможность кэширования всего массива конфигурации и загрузки его напрямую из кэша до создания экземпляра приложения в скрипте входа.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-runtime-bootstrapping.html