Completed
Push — master ( 3206ef...62292e )
by Philippe
04:12
created

StorageFrameworkManagerController::caching()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 16
ccs 0
cts 13
cp 0
rs 9.7333
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Filoucrackeur\StorageFrameworkManager\Controller\Backend;
5
6
use Filoucrackeur\StorageFrameworkManager\Service\CacheManagerService;
7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use TYPO3\CMS\Backend\View\BackendTemplateView;
10
use TYPO3\CMS\Core\Http\JsonResponse;
11
use TYPO3\CMS\Core\Utility\GeneralUtility;
12
13
class StorageFrameworkManagerController extends AbstractController
14
{
15
    /**
16
     * @var BackendTemplateView
17
     */
18
    protected $view;
19
20
    /**
21
     * @var string
22
     */
23
    protected $defaultViewObjectName = BackendTemplateView::class;
24
25
    /**
26
     * @var CacheManagerService
27
     */
28
    protected $cacheManagerService;
29
30
    public function indexAction(): void
31
    {
32
        $pageRenderer = $this->view->getModuleTemplate()->getPageRenderer();
33
        $pageRenderer->addRequireJsConfiguration([
34
            'paths' => [
35
                'TYPO3/CMS/Install' => 'sysext/install/Resources/Public/JavaScript/Modules',
36
            ],
37
        ]);
38
39
        $pageRenderer->loadRequireJsModule(
40
            'TYPO3/CMS/StorageFrameworkManager/StorageFrameworkManagerModule'
41
        );
42
    }
43
44
    /**
45
     * @param ServerRequestInterface $request
46
     * @return ResponseInterface
47
     * @throws \TYPO3\CMS\Extbase\Mvc\Exception\InvalidExtensionNameException
48
     */
49
    public function session(ServerRequestInterface $request): ResponseInterface
50
    {
51
        $view = $this->initializeStandaloneView($request, 'Backend/StorageFrameworkManager/Backend/Session.html');
52
        $cacheManagerService = GeneralUtility::makeInstance(CacheManagerService::class);
53
54
        $view->assignMultiple([
55
            'backends' => $cacheManagerService->getSessionBackends(),
56
        ]);
57
58
        return new JsonResponse([
59
            'success' => true,
60
            'html' => $view->render(),
61
        ]);
62
    }
63
64
    /**
65
     * @param ServerRequestInterface $request
66
     * @return ResponseInterface
67
     * @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException
68
     * @throws \TYPO3\CMS\Extbase\Mvc\Exception\InvalidExtensionNameException
69
     */
70
    public function caching(ServerRequestInterface $request): ResponseInterface
71
    {
72
        $view = $this->initializeStandaloneView($request, 'Backend/StorageFrameworkManager/Backend/Caching.html');
73
74
        $cacheManagerService = GeneralUtility::makeInstance(CacheManagerService::class);
75
76
        $view->assignMultiple([
77
            'coreBackends' => $cacheManagerService->getCacheCoreBackends(),
78
            'extensionsBackends' => $cacheManagerService->getCacheExtensionsBackends(),
79
        ]);
80
81
        return new JsonResponse([
82
            'success' => true,
83
            'html' => $view->render(),
84
        ]);
85
    }
86
87
    /**
88
     * @param CacheManagerService $cacheManagerService
89
     */
90
    public function injectCacheManagerService(CacheManagerService $cacheManagerService): void
91
    {
92
        $this->cacheManagerService = $cacheManagerService;
93
    }
94
}
95