Какова цель файла bootstrap.php.cache Symfony2? - программирование
Подтвердить что ты не робот

Какова цель файла bootstrap.php.cache Symfony2?

Я использую SF2 в одном из наших унаследованных проектов, а не во всей структуре, но, втягивая в себя пакеты и компоненты, которые мне нужны. И я всегда задавался вопросом об этих строках кода:

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();

Интересно, для чего этот файл bootstrap.php.cache, для чего он нужен, как он сгенерирован (если я не использую всю фреймворк SF2). Раньше я не использовал его, и проблем не было, но мне интересно, может ли это дать мне повышение производительности и т.д., Которые я должен изучить. Я попытался найти все, но не смог найти документ, посвященный этой теме.

4b9b3361

Ответ 1

Чтобы обеспечить оптимальную гибкость и повторное использование кода, приложения Symfony2 используют различные классы и сторонние компоненты. Но загрузка всех этих классов из отдельных файлов по каждому запросу может привести к некоторым накладным расходам. Чтобы уменьшить эти накладные расходы, Symfony2 Standard Edition предоставляет script для создания так называемого файла начальной загрузки, состоящего из нескольких определений классов в одном файле. Включив этот файл (который содержит копию многих основных классов), Symfony больше не должен включать какие-либо исходные файлы, содержащие эти классы. Это немного уменьшит количество дисков.

Источник: Использовать файлы Bootstrap.

Ответ 2

Из Документация по Symfony:

Чтобы обеспечить оптимальную гибкость и повторное использование кода, приложения Symfony2 используют различные классы и сторонние компоненты. Но загрузка всех этих классов из отдельных файлов по каждому запросу может привести к некоторым накладным расходам. Чтобы уменьшить эти накладные расходы, Symfony2 Standard Edition предоставляет script для создания так называемого файла начальной загрузки, состоящего из нескольких определений классов в одном файле. Включив этот файл (который содержит копию многих основных классов), Symfony больше не должен включать какие-либо исходные файлы, содержащие эти классы. Это немного уменьшит количество дисков.

Вы можете создать свой файл начальной загрузки следующим образом:

php vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php

Ответ 3

Файл кеша начальной загрузки может вызвать раздражение во время разработки, поскольку он изменяет номера строк в трассировке стека. К счастью его можно легко отключить в web/app_dev.php.