Skip to content

Commit

Permalink
LINT
Browse files Browse the repository at this point in the history
  • Loading branch information
sunnysideup committed Mar 25, 2023
1 parent e77f573 commit fe68b57
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 39 deletions.
3 changes: 1 addition & 2 deletions src/Extensions/DataObjectExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use SilverStripe\Core\Config\Config;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Versioned\Versioned;

use Sunnysideup\SimpleTemplateCaching\Model\ObjectsUpdated;

class DataObjectExtension extends DataExtension
Expand Down Expand Up @@ -89,7 +88,7 @@ private function doUpdateCache()
private function canUpdateCache($className): bool
{
// we want to always avoid this to avoid a loop.
if($className === ObjectsUpdated::class) {
if (ObjectsUpdated::class === $className) {
return false;
}
$excludedClasses = (array) Config::inst()->get(self::class, 'excluded_classes_for_caching');
Expand Down
3 changes: 1 addition & 2 deletions src/Extensions/PageControllerExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,11 @@ public function CacheKeyContent(): string
public function CacheKeyGenerator($letter, $includePageId = true): string
{
if ($this->HasCacheKeys()) {
$string = $letter . '_' .$this->cacheKeyAnyDataObjectChanges();
$string = $letter . '_' . $this->cacheKeyAnyDataObjectChanges();

if ($includePageId) {
$string .= '_ID_' . $this->owner->ID;
}

} else {
$string = 'NOT_CACHED_' . '_ID_' . $this->owner->ID . time() . '_' . rand(0, 999);
}
Expand Down
39 changes: 18 additions & 21 deletions src/Extensions/SimpleTemplateCachingSiteConfigExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,16 @@

namespace Sunnysideup\SimpleTemplateCaching\Extensions;

use SilverStripe\Forms\DatetimeField;
use SilverStripe\Forms\ReadonlyField;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Forms\CheckboxField;
use SilverStripe\Forms\FieldList;

use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig_RecordViewer;
use SilverStripe\Forms\ReadonlyField;
use SilverStripe\ORM\DataExtension;
use SilverStripe\ORM\DB;
use SilverStripe\ORM\FieldType\DBDatetime;
use SilverStripe\SiteConfig\SiteConfig;

use SilverStripe\Core\Injector\Injector;

use Sunnysideup\SimpleTemplateCaching\Model\ObjectsUpdated;

class SimpleTemplateCachingSiteConfigExtension extends DataExtension
Expand All @@ -32,7 +28,7 @@ class SimpleTemplateCachingSiteConfigExtension extends DataExtension
public function updateCMSFields(FieldList $fields)
{
$name = '';
if(class_exists($this->getOwner()->ClassNameLastEdited)) {
if (class_exists($this->getOwner()->ClassNameLastEdited)) {
$name = Injector::inst()->get($this->getOwner()->ClassNameLastEdited)->i18n_singular_name();
}
$fields->addFieldsToTab(
Expand All @@ -44,19 +40,19 @@ public function updateCMSFields(FieldList $fields)
ReadonlyField::create('CacheKeyLastEdited', 'Content Last Edited')
->setRightTitle('The frontend template cache will be invalidated every time this value changes. It changes every time anything is changed in the database.'),
ReadonlyField::create('ClassNameLastEdited', 'Last class updated')
->setRightTitle('Last object updated. The name of this object is: '.$name),
->setRightTitle('Last object updated. The name of this object is: ' . $name),
]
);
if($this->getOwner()->RecordCacheUpdates) {
if ($this->getOwner()->RecordCacheUpdates) {
$fields->addFieldsToTab(
'Root.Caching',
[
GridField::create(
'ObjectsUpdated',
'Last '.self::MAX_OBJECTS_UPDATED.' objects updated',
'Last ' . self::MAX_OBJECTS_UPDATED . ' objects updated',
ObjectsUpdated::get()->limit(self::MAX_OBJECTS_UPDATED),
GridFieldConfig_RecordViewer::create()
)
),
]
);
}
Expand All @@ -65,31 +61,32 @@ public function updateCMSFields(FieldList $fields)
public static function site_cache_key(): string
{
$obj = SiteConfig::current_site_config();
if($obj->HasCaching) {
return (string) 'ts_'.strtotime($obj->CacheKeyLastEdited);
} else {
return (string) 'ts_'.time();
if ($obj->HasCaching) {
return (string) 'ts_' . strtotime($obj->CacheKeyLastEdited);
}

return (string) 'ts_' . time();
}

public static function update_cache_key(?string $className = '')
{
$obj = SiteConfig::current_site_config();
if($obj->HasCaching) {
if ($obj->HasCaching) {
DB::query('
UPDATE "SiteConfig"
SET
"CacheKeyLastEdited" = \'' . DBDatetime::now()->Rfc2822() . '\',
"ClassNameLastEdited" = \'' . addslashes((string) $className). '\'
WHERE ID = '.$obj->ID.'
"ClassNameLastEdited" = \'' . addslashes((string) $className) . '\'
WHERE ID = ' . $obj->ID . '
LIMIT 1
;');
}
if($obj->RecordCacheUpdates) {
if ($obj->RecordCacheUpdates) {
$recordId = Injector::inst()
->create(ObjectsUpdated::class, ['ClassNameLastEdited' => $className])
->write();
DB::query('DELETE FROM ObjectsUpdated WHERE ID < '.(Int) ($recordId - self::MAX_OBJECTS_UPDATED));
->write()
;
DB::query('DELETE FROM ObjectsUpdated WHERE ID < ' . (int) ($recordId - self::MAX_OBJECTS_UPDATED));
}
}
}
26 changes: 12 additions & 14 deletions src/Model/ObjectsUpdated.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,23 @@

namespace Sunnysideup\SimpleTemplateCaching\Model;

use SilverStripe\ORM\DataObject;

use SilverStripe\Core\Injector\Injector;
use SilverStripe\ORM\DataObject;

/**
* A blog category for generalising blog posts.
*
*
* @method Blog Blog()
*
* @property string $Title
* @property string $URLSegment
* @property int $BlogID
* @property int $BlogID
*/
class ObjectsUpdated extends DataObject
{

/**
* {@inheritDoc}
*
* @var string
*/
private static $table_name = 'ObjectsUpdated';
Expand All @@ -29,7 +27,7 @@ class ObjectsUpdated extends DataObject
* @var array
*/
private static $db = [
'ClassNameLastEdited' => 'Varchar(255)',
'ClassNameLastEdited' => 'Varchar(255)',
];

private static $default_sort = [
Expand All @@ -40,31 +38,31 @@ class ObjectsUpdated extends DataObject
* @var array
*/
private static $summary_fields = [
'Created' => 'Updated',
'Created' => 'Updated',
'ClassNameTitle' => 'Record name ',
];

/**
* @var array
*/
private static $field_labels = [
'Created' => 'Updated',
'ClassNameLastEdited' => 'Code name',
'ClassNameTitle' => 'Human readable name',
'Created' => 'Updated',
'ClassNameLastEdited' => 'Code name',
'ClassNameTitle' => 'Human readable name',
];
/**
* @var array
*/
private static $casting = [
'ClassNameTitle' => 'Varchar',
'ClassNameTitle' => 'Varchar',
];

public function getClassNameTitle() : string
public function getClassNameTitle(): string
{
if(class_exists($this->getOwner()->ClassNameLastEdited)) {
if (class_exists($this->getOwner()->ClassNameLastEdited)) {
return Injector::inst()->get($this->getOwner()->ClassNameLastEdited)->i18n_singular_name();
}

return 'class not found';
}

}

0 comments on commit fe68b57

Please sign in to comment.