Какова цель файла 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). Раньше я не использовал его, и проблем не было, но мне интересно, может ли это дать мне повышение производительности и т.д., Которые я должен изучить. Я попытался найти все, но не смог найти документ, посвященный этой теме.
Ответы
Ответ 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
.