Skip to content

Commit

Permalink
fix: remove use of deprecated doctrine caching
Browse files Browse the repository at this point in the history
Replace use of RequestFilters
  • Loading branch information
wilr committed Oct 26, 2022
1 parent b95bbbc commit 75dc390
Show file tree
Hide file tree
Showing 15 changed files with 88 additions and 114 deletions.
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
/vendor/
/framework/
/cms/
composer.lock
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ The latest version only supports SilverStripe 4, see the `1.0` branch for a Silv

## Installation (composer required)

$ composer require "heyday/silverstripe-redirects"
```
composer require "heyday/silverstripe-redirects"
```
29 changes: 18 additions & 11 deletions _config/config.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
---
Name: redirects
---
SilverStripe\Core\Injector\Injector:
RedirectsCache:
class: Doctrine\Common\Cache\FilesystemCache
constructor:
0: '../silverstripe-redirects/cache'

RedirectUrlDataSource:
class: Heyday\SilverStripeRedirects\Source\DataSource\DataListDataSource
constructor:
Expand All @@ -14,16 +12,15 @@ SilverStripe\Core\Injector\Injector:
class: Heyday\SilverStripeRedirects\Source\DataSource\CachedDataSource
constructor:
0: '%$RedirectUrlDataSource'
1: '%$RedirectsCache'

Heyday\SilverStripeRedirects\Code\RedirectUrl:
Heyday\SilverStripeRedirects\Source\RedirectUrl:
properties:
dataSource: '%$CachedRedirectUrlDataSource'

RedirectUrlDataList:
class: SilverStripe\ORM\DataList
constructor:
0: 'Heyday\SilverStripeRedirects\Code\RedirectUrl'
0: 'Heyday\SilverStripeRedirects\Source\RedirectUrl'

Heyday\SilverStripeRedirects\Source\Redirector:
constructor:
Expand All @@ -33,7 +30,17 @@ SilverStripe\Core\Injector\Injector:
constructor:
0: '%$Heyday\SilverStripeRedirects\Source\Redirector'

SilverStripe\Control\RequestProcessor:
Psr\SimpleCache\CacheInterface.redirectsCache:
factory: SilverStripe\Core\Cache\CacheFactory
constructor:
namespace: "redirectsCache"
---
Name: redirects-processing
After:
- requestprocessors
---
SilverStripe\Core\Injector\Injector:
SilverStripe\Control\Director:
properties:
filters:
- '%$Heyday\SilverStripeRedirects\Source\RequestFilter'
Middlewares:
RedirectMiddleware: '%$Heyday\SilverStripeRedirects\Source\RequestFilter'
8 changes: 4 additions & 4 deletions _config/legacy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Name: redirectslegacy
---
SilverStripe\ORM\DatabaseAdmin:
classname_value_remapping:
RedirectUrl: 'Heyday\SilverStripeRedirects\Code\RedirectUrl'

Heyday\SilverStripeRedirects\Code\RedirectUrl:
table_name: RedirectUrl
RedirectUrl: 'Heyday\SilverStripeRedirects\Source\RedirectUrl'
'Heyday\SilverStripeRedirects\Code\RedirectUrl': 'Heyday\SilverStripeRedirects\Source\RedirectUrl'
Heyday\SilverStripeRedirects\Source\RedirectUrl:
table_name: RedirectUrl
3 changes: 0 additions & 3 deletions cache/.gitignore

This file was deleted.

Empty file removed cache/_manifest_exclude
Empty file.
46 changes: 14 additions & 32 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,34 +1,16 @@
{
"name": "heyday/silverstripe-redirects",
"description": "DB Management of redirects",
"license": "MIT",
"authors": [
{
"name": "Cam Spiers",
"email": "[email protected]"
},{
"name": "Ben Dubuisson",
"email": "[email protected]"
}
],
"type": "silverstripe-module",
"autoload": {
"psr-4": {
"Heyday\\SilverStripeRedirects\\Code\\": "code/",
"Heyday\\SilverStripeRedirects\\Source\\": "src/"
}
},
"require": {
"doctrine/cache": "~1.3",
"silverstripe/framework": "~4.0",
"silverstripe/cms": "~4.0"
},
"require-dev": {
"symfony/yaml": "~2.5"
},
"suggest": {
"symfony/yaml": "Add this Yaml library to be able to use Yaml sources"
},
"prefer-stable": true,
"minimum-stability": "dev"
"name": "heyday/silverstripe-redirects",
"description": "DB Management of redirects",
"license": "MIT",
"type": "silverstripe-vendormodule",
"autoload": {
"psr-4": {
"Heyday\\SilverStripeRedirects\\Source\\": "src/"
}
},
"require": {
"silverstripe/cms": "~4.0"
},
"prefer-stable": true,
"minimum-stability": "dev"
}
22 changes: 12 additions & 10 deletions src/DataSource/CachedDataSource.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@

namespace Heyday\SilverStripeRedirects\Source\DataSource;


use Heyday\SilverStripeRedirects\Source\DataSourceInterface;
use Heyday\SilverStripeRedirects\Source\CacheableDataSourceInterface;
use Psr\SimpleCache\CacheInterface;
use SilverStripe\Core\Injector\Injector;

class CachedDataSource implements DataSourceInterface
{
/** @var \Heyday\SilverStripeRedirects\Source\CacheableDataSourceInterface */
protected $dataSource;
/** @var \Doctrine\Common\Cache\CacheProvider */

/** @var CacheInterface */
protected $cache;

/**
* @param CacheableDataSourceInterface $dataSource
* @param \Doctrine\Common\Cache\CacheProvider $cache
*/
public function __construct(CacheableDataSourceInterface $dataSource, $cache)
public function __construct(CacheableDataSourceInterface $dataSource)
{
$this->dataSource = $dataSource;
$this->cache = $cache;
$this->cache = Injector::inst()->get(CacheInterface::class . '.redirectsCache');
}

/**
Expand All @@ -31,11 +31,13 @@ public function get()
{
$key = $this->dataSource->getKey();

if (!$result = $this->cache->fetch($key)) {
$this->cache->save(
if (!$this->cache->has($key)) {
$this->cache->set(
$key,
$result = $this->dataSource->get()
);
} else {
$result = $this->cache->get($key);
}

return $result;
Expand All @@ -47,6 +49,6 @@ public function get()
*/
public function delete()
{
$this->cache->delete($this->dataSource->getKey());
$this->cache->clear();
}
}
}
2 changes: 1 addition & 1 deletion src/DataSource/DataListDataSource.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,4 @@ public function getKey()
{
return md5($this->list->sql());
}
}
}
25 changes: 11 additions & 14 deletions code/RedirectUrl.php → src/RedirectUrl.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<?php

namespace Heyday\SilverStripeRedirects\Code;
namespace Heyday\SilverStripeRedirects\Source;

use Heyday\SilverStripeRedirects\Source\DataSource\CachedDataSource;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\DropdownField;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\HeaderField;
Expand All @@ -16,15 +17,15 @@

/**
* Class RedirectUrl
* @package Heyday\SilverStripeRedirects\Code
* @package Heyday\SilverStripeRedirects\Source
*/
class RedirectUrl extends DataObject implements PermissionProvider
{
/**
* Permission for managing redirects
*/
const PERMISSION = 'MANAGE_REDIRECTS';

/**
* @var string
*/
Expand All @@ -43,8 +44,8 @@ class RedirectUrl extends DataObject implements PermissionProvider
* @var array
*/
private static $has_one = [
'FromRelation' => 'SilverStripe\CMS\Model\SiteTree',
'ToRelation' => 'SilverStripe\CMS\Model\SiteTree'
'FromRelation' => SiteTree::class,
'ToRelation' => SiteTree::class
];

/**
Expand Down Expand Up @@ -297,9 +298,7 @@ protected function hasPermission($member = null)
}


/**
* Clear out from and to manual links if we have a relation
*/

protected function onBeforeWrite()
{
parent::onBeforeWrite();
Expand All @@ -317,23 +316,21 @@ protected function onBeforeWrite()
}
}

/**
*
*/

protected function onAfterWrite()
{
parent::onAfterWrite();

if (isset($this->dataSource)) {
$this->dataSource->delete();
}
}

/**
*
*/

protected function onAfterDelete()
{
parent::onAfterDelete();

if (isset($this->dataSource)) {
$this->dataSource->delete();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Heyday\SilverStripeRedirects\Code;
namespace Heyday\SilverStripeRedirects\Source;

use SilverStripe\Forms\Validator;

Expand All @@ -22,7 +22,7 @@ public function php($data)
);
$valid = false;
}

if ($data['FromType'] == 'manual' && empty($data['From'])) {
$this->validationError(
'From',
Expand All @@ -31,7 +31,7 @@ public function php($data)
);
$valid = false;
}

if ($data['ToType'] == 'page' && $data['ToRelationID'] == 0) {
$this->validationError(
'ToRelationID',
Expand All @@ -40,7 +40,7 @@ public function php($data)
);
$valid = false;
}

if ($data['ToType'] == 'manual' && empty($data['To'])) {
$this->validationError(
'To',
Expand Down
14 changes: 7 additions & 7 deletions code/RedirectsModelAdmin.php → src/RedirectsModelAdmin.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Heyday\SilverStripeRedirects\Code;
namespace Heyday\SilverStripeRedirects\Source;

use SilverStripe\Admin\ModelAdmin;
use SilverStripe\Forms\DateField;
Expand All @@ -10,32 +10,32 @@

/**
* Class RedirectsModelAdmin
* @package Heyday\SilverStripeRedirects\Code
* @package Heyday\SilverStripeRedirects\Source
*/
class RedirectsModelAdmin extends ModelAdmin
{
/**
* @var array
*/
private static $managed_models = [
'Heyday\SilverStripeRedirects\Code\RedirectUrl'
RedirectUrl::class
];

/**
* @var string
*/
private static $url_segment = 'redirects-management';
private static $url_segment = 'redirects';

/**
* @var string
*/
private static $menu_title = 'Redirects';


/**
* @var string
*/
private static $menu_icon_class = 'font-icon-link';
private static $menu_icon_class = 'font-icon-p-redirect';

/**
* @param null $id
Expand Down
Loading

0 comments on commit 75dc390

Please sign in to comment.