Итак, попробую в этой статье поделиться информацией о кеше.
Ядро Symfony создается с помощью класса:
$debug = getenv('SYMFONY_DEBUG') === 'true' || getenv('SYMFONY_ENV') === 'dev';
$env = $debug === true ? 'dev' : 'prod';
$kernel = new AppKernel($env, $debug);
Теперь вопрос, нужно ли в файле web/app.php вызывать:
$kernel->loadClassCache();// данный вызов выполнит include файла app/cache/prod/app/appProdProjectContainer.php
Ответ зависит от PHP-SAPI: для cli нужно, для php-fpm не нужно, т.к. ниже в файле web/app.php можно заметить вызов метода $kernel->handle(), который в свою очередь тоже выполнит выполнит include файла app/cache/prod/app/appProdProjectContainer.php в результате чего Вы получите ошибку:
PHP Fatal error: Cannot declare ... because the name is already in use
Вот что происходит, когда вызывается функция $kernel->handle()
1. {main}() /var/www/cabinet/web/app.php:0
2. Symfony\Component\HttpKernel\Kernel->handle() /var/www/site/web/app.php:41
3. Symfony\Component\HttpKernel\Kernel->boot() /var/www/site/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:182
4. Symfony\Component\HttpKernel\Kernel->doLoadClassCache() /var/www/site/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:126
5. Symfony\Component\ClassLoader\ClassCollectionLoader::load() /var/www/site/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:408
Удачки, господа.
Комментарии
Комментариев пока нет.