CacheCleaner plugin for CakePHP, this shell clean the cache of your application
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
src/Shell
.gitignore
LICENSE
README.md
composer.json

README.md

CacheCleaner plugin for CakePHP

This plugin is a shell that cleans the cache in your application

Requirements

  • PHP version 5.4.16 or higher
  • CakePhp 3.0 or higher

Installation

You can install this plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require daoandco/cakephp-cachecleaner

Loading the Plugin

  // In config/bootstrap.php
  Plugin::load('CacheCleaner', ['bootstrap' => true, 'routes' => false]);

Quick Start

Clear all cache

bin/cake CacheCleaner.clear -a

Clear cake cache

bin/cake CacheCleaner.clear cake

Tasks

ORM

It's the equivalent to orm_cache clear. See more informations

bin/cake CacheCleaner.clear orm

Cake

Clear the cache generate by Cake\Cache\Cache

bin/cake CacheCleaner.clear cake

Opcache

Resets the entire opcode cache, See more informations

bin/cake CacheCleaner.clear opcache

Dir

Clear directories in "tmp/cache/"

  • Clear all directories
bin/cake CacheCleaner.clear dir -a
  • Clear one directory
bin/cake CacheCleaner.clear dir dir_name
  • Clear many directories
bin/cake CacheCleaner.clear dir dir_name other_dir_name

Configuration

Create config file

Create a file in app/config like 'vendor/daoandco/cakephp-cachecleaner/config/config.php'

<?php
// config/cachecleaner.php


return [
    'CacheCleaner' => [
        'tasks' => ['CacheCleaner.Dir', 'CacheCleaner.Orm', 'CacheCleaner.Cake', 'CacheCleaner.Opcache'],

        'Dir' => [
            'dirs' => true,
        ],
    ]
];

Load configuration

<?php
// In config/bootstrap.php

Configure::load('cachecleaner', 'default');

Options

  • tasks : add or remove tasks Exemple : if you do not want Opcache you can write
tasks' => ['CacheCleaner.Dir', 'CacheCleaner.Orm', 'CacheCleaner.Cake'],
  • Dir.dirs : choose the folders to clear Exemple : if you want clear only persistent forler you can write
'Dir' => [
	'dirs' => ['persistent'],
],

Create a new task for your usage

You can add your own tasks, Your class must implement Task Interface

Create the task

// In Shell/Task

namespace App\Shell\Task;

use Cake\Console\Shell;
use Cake\Console\ConsoleOptionParser;
use CacheCleaner\Shell\Task\TaskInterface;

class DemoTask extends Shell implements TaskInterface {

    public function getOptionParser() {
        $parser = new ConsoleOptionParser('console');
        $parser
            ->description("Task description")
            ->command("demo")
            ;
        return $parser;
    }

    public function help() {
        return 'Task description';
    }

    public function main() {
        // call with de command : "bin/cake CacheCleaner.clear demo"
        $this->success('OK');
    }

    public function all() {
        // call with de command : "bin/cake CacheCleaner.clear demo -a"
        $this->success('OK');
    }
}

Load the task

<?php
// In config/cachecleaner.php

return [
    'CacheCleaner' => [
        'tasks' => ['CacheCleaner.Dir', 'CacheCleaner.Orm', 'CacheCleaner.Cake', 'CacheCleaner.Opcache', 'Demo'],

        'Dir' => [
            'dirs' => true,
        ],
    ]
];