CacheCleaner plugin for CakePHP
This plugin is a shell that cleans the cache in your application, (*1)
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., (*2)
The recommended way to install composer packages is:, (*3)
composer require daoandco/cakephp-cachecleaner
Loading the Plugin, (*4)
// In config/bootstrap.php
Plugin::load('CacheCleaner', ['bootstrap' => true, 'routes' => false]);
Quick Start
Clear all cache, (*5)
bin/cake CacheCleaner.clear -a
Clear cake cache, (*6)
bin/cake CacheCleaner.clear cake
Tasks
ORM
It's the equivalent to orm_cache clear
. See more informations, (*7)
bin/cake CacheCleaner.clear orm
Cake
Clear the cache generate by Cake\Cache\Cache
, (*8)
bin/cake CacheCleaner.clear cake
Opcache
Resets the entire opcode cache, See more informations, (*9)
bin/cake CacheCleaner.clear opcache
Dir
Clear directories in "tmp/cache/", (*10)
bin/cake CacheCleaner.clear dir -a
bin/cake CacheCleaner.clear dir dir_name
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', (*11)
<?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
, (*12)
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,
],
]
];