Source of file CacheableExtension.php
Size: 0,960 Bytes - Last Modified: 2021-12-23T10:07:33+00:00
/var/www/docs.ssmods.com/process/src/code/extensions/CacheableExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041 | <?php /** * The cacheable data object extension * @author Christian Blank <c.blank@notthatbad.net> */ class CacheableExtension extends DataExtension { /** * */ public function onAfterWrite() { $serializer = CacheHelper::get_serializer(); // update the cache CacheHelper::get_cache()->save($serializer->serialize($this->owner), $this->key()); parent::onAfterWrite(); } /** * */ public function onBeforeDelete() { // delete the cache CacheHelper::get_cache()->remove($this->key()); parent::onBeforeDelete(); } private function key() { $name = $this->ownerBaseClass; $id = $this->Identifier(); return CacheHelper::to_key("$name.$id"); } /** * @return mixed */ public function Identifier() { return property_exists($this->owner, 'URLSegment') ? $this->owner->URLSegment : $this->owner->ID; } } |