mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
API Use symfony/cache
See https://github.com/silverstripe/silverstripe-framework/issues/6252
This commit is contained in:
parent
dd5c050108
commit
6bae804744
9
_config/cache.yml
Normal file
9
_config/cache.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
After:
|
||||
- '#corecache'
|
||||
---
|
||||
SilverStripe\Core\Injector\Injector:
|
||||
Psr\SimpleCache\CacheInterface.CMSMain_SiteTreeHints:
|
||||
factory: SilverStripe\Core\Cache\CacheFactory
|
||||
constructor:
|
||||
namespace: "CMSMain_SiteTreeHints"
|
@ -21,7 +21,7 @@ use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Control\HTTPResponse_Exception;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Core\Injector\Injector;
|
||||
use SilverStripe\Core\Cache;
|
||||
use Psr\SimpleCache\CacheInterface;
|
||||
use SilverStripe\Forms\DateField;
|
||||
use SilverStripe\Forms\DropdownField;
|
||||
use SilverStripe\Forms\FieldGroup;
|
||||
@ -59,7 +59,6 @@ use SilverStripe\Security\SecurityToken;
|
||||
use SilverStripe\View\ArrayData;
|
||||
use SilverStripe\View\Requirements;
|
||||
use Translatable;
|
||||
use Zend_Cache;
|
||||
use InvalidArgumentException;
|
||||
|
||||
/**
|
||||
@ -556,12 +555,12 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
||||
}
|
||||
|
||||
// Generate basic cache key. Too complex to encompass all variations
|
||||
$cache = Cache::factory('CMSMain_SiteTreeHints');
|
||||
$cache = Injector::inst()->get(CacheInterface::class . '.CMSMain_SiteTreeHints');
|
||||
$cacheKey = md5(implode('_', array(Member::currentUserID(), implode(',', $cacheCanCreate), implode(',', $classes))));
|
||||
if ($this->getRequest()->getVar('flush')) {
|
||||
$cache->clean(Zend_Cache::CLEANING_MODE_ALL);
|
||||
$cache->clear();
|
||||
}
|
||||
$json = $cache->load($cacheKey);
|
||||
$json = $cache->get($cacheKey);
|
||||
if (!$json) {
|
||||
$def['Root'] = array();
|
||||
$def['Root']['disallowedChildren'] = array();
|
||||
@ -608,7 +607,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
||||
$this->extend('updateSiteTreeHints', $def);
|
||||
|
||||
$json = Convert::raw2json($def);
|
||||
$cache->save($json, $cacheKey);
|
||||
$cache->set($cacheKey, $json);
|
||||
}
|
||||
return $json;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use SilverStripe\Core\Injector\Injector;
|
||||
use SilverStripe\ORM\DB;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\ORM\ValidationException;
|
||||
@ -9,7 +10,7 @@ use SilverStripe\CMS\Controllers\CMSMain;
|
||||
use SilverStripe\CMS\Model\SiteTree;
|
||||
use SilverStripe\Admin\CMSBatchActionHandler;
|
||||
use SilverStripe\SiteConfig\SiteConfig;
|
||||
use SilverStripe\Core\Cache;
|
||||
use Psr\SimpleCache\CacheInterface;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Core\ClassInfo;
|
||||
use SilverStripe\Dev\TestOnly;
|
||||
@ -45,11 +46,11 @@ class CMSMainTest extends FunctionalTest
|
||||
|
||||
public function testSiteTreeHints()
|
||||
{
|
||||
$cache = Cache::factory('CMSMain_SiteTreeHints');
|
||||
$cache = Injector::inst()->get(CacheInterface::class . '.CMSMain_SiteTreeHints');
|
||||
// Login as user with root creation privileges
|
||||
$user = $this->objFromFixture('SilverStripe\\Security\\Member', 'rootedituser');
|
||||
$user->logIn();
|
||||
$cache->clean(Zend_Cache::CLEANING_MODE_ALL);
|
||||
$cache->clear();
|
||||
|
||||
$rawHints = singleton('SilverStripe\\CMS\\Controllers\\CMSMain')->SiteTreeHints();
|
||||
$this->assertNotNull($rawHints);
|
||||
|
Loading…
Reference in New Issue
Block a user