Symfony — kernel cache

Итак, попробую в этой статье поделиться информацией о кеше.

Декларирование используемых классов из кеша

Ядро 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

Удачки, господа.

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Введите изображенные цифры:
Captcha
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная » Веб-мастеру » PHP »