123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- namespace App\Helpers;
- use Illuminate\Support\Facades\Cache;
- use App\Models\DistAdminDistributor;
- class SiteCache
- {
-
- public static function getDist(?string $domain = null, int $seconds = 600): ?string
- {
- if (is_null($domain)) {
- return null;
- }
- return Cache::tags([$domain, 'dist'])->remember("dist_{$domain}", $seconds, function () use ($domain) {
- return DistAdminDistributor::where('custom_domain', $domain)
- ->orWhere('secondary_domain', $domain)
- ->first();
- });
- }
-
- public static function clearDistCache(?string $domain = null): void
- {
- if (is_null($domain)) {
- return;
- }
- Cache::tags([$domain, 'dist'])->forget("dist_{$domain}");
- }
-
- public static function getProduct(?string $domain = null, ?int $productId = null, int $seconds = 600): ?Product
- {
- if (is_null($domain) || is_null($productId)) {
- return null;
- }
- return Cache::tags([$domain, 'product'])->remember("product_{$productId}", $seconds, function () use ($productId) {
- return Product::find($productId);
- });
- }
-
- public static function clearProductCache(?string $domain = null, ?int $productId = null): void
- {
- if (is_null($domain) || is_null($productId)) {
- return;
- }
- Cache::tags([$domain, 'product'])->forget("product_{$productId}");
- }
-
- public static function getArticle(?string $domain = null, ?int $articleId = null, int $seconds = 600): ?Article
- {
- if (is_null($domain) || is_null($articleId)) {
- return null;
- }
- return Cache::tags([$domain, 'article'])->remember("article_{$articleId}", $seconds, function () use ($articleId) {
- return Article::find($articleId);
- });
- }
-
- public static function clearArticleCache(?string $domain = null, ?int $articleId = null): void
- {
- if (is_null($domain) || is_null($articleId)) {
- return;
- }
- Cache::tags([$domain, 'article'])->forget("article_{$articleId}");
- }
-
- public static function clearAllDomainCache(string $domain): void
- {
- Cache::tags([$domain])->flush();
- }
-
- public static function clearSpecificTypeCache(string $domain, string $type): void
- {
- Cache::tags([$domain, $type])->flush();
- }
- }
|