wpstudio / helpers-plugin
一些扩展模型和控制器
dev-master
2022-12-28 08:26 UTC
Requires
- composer/installers: ~1.0
This package is not auto-updated.
Last update: 2024-09-27 16:02:21 UTC
README
观察者可用于创建和清除缓存
示例观察者使用
创建带有观察者的自己的类
<?php namespace Dimti\Mirsporta\Classes\Observers;
use Dimti\Mirsporta\Models;
use Wpstudio\Helpers\Classes\Observer\BaseObserver;
class TagObserver extends BaseObserver
{
public static function getClass(): string
{
return Models\Tag::class;
}
}
在模型中使用
<?php namespace Dimti\Mirsporta\Models;
use Dimti\Mirsporta\Classes\Observers;
class Tag extends Model
{
//...
public function afterSave()
{
Observers\TagObserver::clearCache();
}
//...
}
并在您的代码中使用,根据此模型/观察者缓存数据
use Dimti\Mirsporta\Classes\Observers;
//...
$cacheTags = Observers\TagObserver::getCacheTag();
$cacheKey = CacheManager::formatCacheKey([__CLASS__, __METHOD__, $siteId]);
\Cache::tags($cacheTags)->rememberForever($cacheKey, fn() =>
Models\Tag::all()
));
- CacheManager::formatCacheKey - 这是一个简单的辅助函数,用于将数组元素连接成字符串
从管理仪表板小部件清除缓存
模板
<input
type="button"
class='btn btn-primary'
value="Clear tag model cache"
data-request="<?= $this->getEventHandler('onClearTagCache') ?>"
data-request-success="$.oc.flashMsg({text: 'Cache of tag model is clearing', 'class': 'success', 'interval': 5}); return false;"
/>
控制器小部件动作
use Dimti\Mirsporta\Classes\Observers;
//...
public function onClearTagCache()
{
Observers\TagObserver::clearCache();
return ['status' => 1];
}
//...