benshepherd icon

CacheController.php

benshepherd | PRO | 08/12/17 01:00:09 PM UTC | 0 ⭐ | 316 👁️ | Never ⏰ | []
PHP |

2.76 KB

|

None

|

0 👍

/

0 👎

<?php
 
namespace App\Http\Controllers\Cache;
 
use App\Http\Controllers\Controller;
use App\Http\Controllers\Frontend\EventsController;
use App\Http\Controllers\Frontend\FrontendController;
use App\Http\Controllers\Frontend\HomeController;
use App\Http\Controllers\Frontend\UploadController;
use App\Traits\UserTrait;
use App\User;
 
class CacheController extends Controller
{
    public static $CONFIG_KEY = 'CacheController_last_updated_at';
 
    public function homepage()
    {
        cache()->forget(HomeController::$CACHE_KEY);
        $homeController = new HomeController();
        return $homeController->indexGetData();
    }
 
    public function radio()
    {
        $frontendController = new FrontendController();
        cache()->forget($frontendController->radioGetCacheKey());
        return $frontendController->radio();
    }
 
    public function events()
    {
        $eventsController = new EventsController();
        cache()->forget($eventsController->eventsGetCacheKey());
        return $eventsController->events();
    }
 
    public function browseCreations()
    {
        $uploadController = new UploadController();
        $all = $uploadController->browseCreationsCacheKey();
        $rooms = $uploadController->browseCreationsCacheKey('room');
        $picture = $uploadController->browseCreationsCacheKey('picture');
        $video = $uploadController->browseCreationsCacheKey('video');
        $tutorial = $uploadController->browseCreationsCacheKey('tutorial');
        $guide = $uploadController->browseCreationsCacheKey('guide');
 
        cache()->forget($all);
        cache()->forget($rooms);
        cache()->forget($picture);
        cache()->forget($video);
        cache()->forget($tutorial);
        cache()->forget($guide);
 
        $uploadController->browseCreationsAJAX('all');
        $uploadController->browseCreationsAJAX('room');
        $uploadController->browseCreationsAJAX('picture');
        $uploadController->browseCreationsAJAX('video');
        $uploadController->browseCreationsAJAX('tutorial');
        $uploadController->browseCreationsAJAX('guide');
    }
 
    public function users()
    {
        $count = 0;
        User::chunk(30, function($users) use(&$count) {
 
            foreach($users as $user) {
 
                cache(array(
                   UserTrait::getCacheKey('id', $user->id) => $user
                ), UserTrait::$CACHE_REMEMBER);
 
                $count++;
            }
        });
 
        return $count;
    }
    public function done()
    {
        cache([
            CacheController::$CONFIG_KEY => time()
        ], 60 * 24);
    }
 
    public static function getLastUpdatedAt()
    {
        return config(CacheController::$CONFIG_KEY);
    }
}

Comments