Files
yii2/docs/guide-ru/runtime-bootstrapping.md
Pavel Dovlatov bdb7c64910 Update to https protocol for php.net links (#17168) [skip ci]
* Updated php.net link for some MemCache properties [skip ci]

* Changed protocol to https for links to php.net in comments

* Changed protocol to https for links to php.net in code

* Changed www.php.net (http) to secure.php.net (https) in comments

* Changed www.php.net (http) to secure.php.net (https) in code

* Changed protocol to https for links to php.net in UPGRADE.md

* Changed protocol to https for links to pecl.php.net in comments

* Changed us.php.net to secure.php.net (https) in comments

* Changed protocol to https for links to php.net in docs

* Changed www.php.net (http) to secure.php.net (https) in docs

* Changed protocol to https for links to pecl.php.net in docs

* Changed ru/jp.php.net to secure.php.net (https) in docs

Don't sure about russian guide: is this links meant to be for guide on russian, or not?
2019-02-28 13:09:27 +03:00

4.5 KiB
Raw Blame History

Предзагрузка

Предзагрузка это процесс настройки рабочей среды до того, как будет запущено приложение и обработан входящий запрос. Предзагрузка осуществляется в двух местах: во входном скрипте и в приложении.

Во входном скрипте, регистрируются автозагрузчики классов различных библиотек. Этот процесс включает в себя автозагрузчик классов Composer через autoload.php файл и автозагрузчик классов Yii через его Yii файл. Затем входной скрипт загружает конфигурацию приложения и создает объект приложения.

В конструкторе приложения происходит следующий процесс предзагрузки:

  1. Вызывается метод yii\base\Application::preInit(), которые конфигурирует свойства приложения, имеющие наивысший приоритет, такие как yii\base\Application::basePath;
  2. Регистрируется yii\base\Application::errorHandler;
  3. Происходит инициализация свойств приложения согласно заданной конфигурации;
  4. Вызывается метод yii\base\Application::init(), который в свою очередь вызывает метод yii\base\Application::bootstrap() для запуска компонентов предзагрузки.

Поскольку предзагрузка осуществляется прежде чем будет обработан каждый запрос, то очень важно, чтобы этот процесс был легким и максимально оптимизированным.

Старайтесь не регистрировать слишком много компонентов в предзагрузке. Компонент предзагрузки нужен только тогда, когда он должен участвовать в полном жизненном цикле процесса обработки запроса. Например, если модуль должен зарегистрировать дополнительные правила парсинга URL, то он должен быть указан в свойстве предзагрузка, чтобы новые правила URL были учтены при обработке запроса.

В производственном режиме включите байткод кэшеры, такие как PHP OPcache или APC, для минимизации времени подключения и парсинг php файлов.

Некоторые большие приложения могут иметь сложную конфигурацию, которая разделена на несколько мелких файлов. Если это тот самый случай, возможно вам стоит кэшировать весь конфигурационный файл и загружать его прямо из кэша до создания объекта приложения во входном скрипте.