Cache Clear Service

How to call Symfony's cache:clear service ?

Posted by Pedro Resende on 18/08/2017 16:31

This week, while working on a project for a customer, I've decided to implement a clear cache service command.

I know I've done something similar in the past, but this time the idea was to use a service.

I've started by creating a new folder, under your bundle called Services.

In side that folder, I've add a file called Cache.php with the following:

namespace Acme\Services;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Bundle\FrameworkBundle\Console\Application;
 * Cache Class responsible for dealing with clear cache command
 * @author Pedro Resende <>
class Cache
     * Symfony's Kernel Service
     * @var [type]
    private $kernel;
    public function __construct($kernel)
        $this->kernel = $kernel;
     * This Method is responsible for triggering the cache clear command
     * @return void
    public function clearCache()
        $input = new Argvinput(array('console','cache:clear'));
        $application = new Application($this->kernel);

Now, open you services.yml file, under Acme/Resources/services.yml, and add the following:
        lazy:  true
        class: Acme\Services\Cache
        arguments: [@kernel]

Now, to call this service inside a Controller, you'll simply will need to do:

$cache = $this->container->get('clear.cache');

Finally, you have to run the following command, to support the lazy service.

$ composer require ocramius/proxy-manager

And it will clear your cache