Если вы читаете эту статью, то наверняка знаете что такое APC и, скорее всего, сталкивались с невозможностью очистить кеш когда это необходимо. В сети есть некоторый способ, который сводится к вызову функции apc_clear_cache() с различными недокументированными параметрами, но в реальности он работает не везде. У вас может быть специфическая среда выполнения или PHP может работать как CGI, и все это накладывает отпечаток на работу данной функции.
Представленный банд избавляет нас от всех вышеописанных проблем и все сводится к единственной консольной команде.
Как обычно добавляем бандл в composer.json и производим обновление:
"ornicar/apc-bundle": "1.0.*"
Дальше добавляем бандл в AppKernel.php нашего проекта:
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new Ornicar\ApcBundle\OrnicarApcBundle(),
// ...
);
}
А так же добавляем секцию ornicar_apc в наш config.yml:
# app/config/config.yml
ornicar_apc:
host: http://example.com # Ссылка на сайт
web_dir: %kernel.root_dir%/../web # Полный путь к веб-корню сайта. Скорее всего вам не придется менять это значение.
mode: curl # Только если нужно использовать curl вместо fopen для доступа к сайту
Важное условие - сайт должен быть свободно доступен. Например защита http-авторизацией не позволит нам очистить APC кеш.
$ php app/console apc:clear # Полная очистка кеша
$ php app/console apc:clear --opcode # Очистка только кеша опкода
$ php app/console apc:clear --user # Очистка только пользовательского кеша
$ php app/console apc:clear --cli # Очистка опкода и пользовательского кеша
Проект на GitHub: https://github.com/ornicar/ApcBundle