-
Notifications
You must be signed in to change notification settings - Fork 566
Expand file tree
/
Copy pathToolbarController.php
More file actions
73 lines (66 loc) · 2.01 KB
/
ToolbarController.php
File metadata and controls
73 lines (66 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
declare(strict_types=1);
/**
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
* @link https://cakephp.org CakePHP(tm) Project
* @license https://www.opensource.org/licenses/mit-license.php MIT License
*/
namespace DebugKit\Controller;
use Cake\Cache\Cache;
use Cake\Http\Exception\NotFoundException;
use Cake\View\JsonView;
/**
* Provides utility features need by the toolbar.
*/
class ToolbarController extends DebugKitController
{
/**
* @inheritDoc
*/
public function initialize(): void
{
parent::initialize();
$this->viewBuilder()->setClassName(JsonView::class);
}
/**
* Clear a named cache.
*
* @return void
* @throws \Cake\Http\Exception\NotFoundException
*/
public function clearCache(): void
{
$this->request->allowMethod('post');
$name = $this->request->getData('name');
if (!$name) {
throw new NotFoundException('Invalid cache engine name.');
}
$success = Cache::clear($name);
$message = $success ?
sprintf('%s cache cleared.', $name) :
sprintf('%s cache could not be cleared.', $name);
$this->set(compact('success', 'message'));
$this->viewBuilder()->setOption('serialize', ['success', 'message']);
}
/**
* Clear the session.
*
* @return void
*/
public function clearSession(): void
{
$this->request->allowMethod('post');
$session = $this->request->getSession();
$session->destroy();
$success = true;
$message = 'Session cleared.';
$this->set(compact('success', 'message'));
$this->viewBuilder()->setOption('serialize', ['success', 'message']);
}
}