Кэш и консоль

За полноценный пост не считается. Так, узелок на память.

В качестве кэша байткода и переменных я использую XCache. Но при запуске консольных приложений, он у меня не работает. Должен или нет, не знаю, не разбирался. Наверное, не должен, если подумать. :-) Просто отметил, что консольные приложения Cake, включая ‘cake bake‘ высыпают кучу ошибок, если XCache используется, как кэш по умолчанию. Поэтому в конфигурации кэша приложения (APP/config/core.php) на CakePHP добавляю маленькую проверку на тип API.

Вот как-то так:

if (PHP_SAPI == 'cli') {
  Cache::config('default', array('engine' => 'File'));
} else {
  Cache::config('default',
    array(
      'engine' => 'Xcache',
          'prefix' => 'mypfx_',
          'user'=>'IamAdmin',
          'password'=>'c00leztPass'));
}

Можно пользоваться константой PHP_SAPI или функцией php_sapi_name(), не важно.

Related Posts with Thumbnails
21.09.2009 • Метки: , , • Рубрики: CakePHP
  • Имя
    Если xcache работает в php-cli, то кэш отрубается вовсе. Делается это внутри кода так: xcache.size = xcache.size_var = 0. Если php запущен как fast-cgi, то xсache работает как ни в чём не бывало… Если в xcache.ini параметр xcache.test = On, то xcache будет работать всегда, даже в cli версии. Вот такой хитрый расклад.
    http://stunpix.com/2009/09/30/tajny-php-optimizatora-xcache/
blog comments powered by Disqus