Вход Регистрация
Файл: gapps/vendor/prettus/l5-repository/src/Prettus/Repository/Listeners/CleanCacheRepository.php
Строк: 52
<?php

namespace PrettusRepositoryListeners;

use 
IlluminateContractsCacheRepository as CacheRepository;
use 
IlluminateContractsQueueShouldQueue;
use 
IlluminateDatabaseEloquentModel;
use 
IlluminateSupportFacadesLog;
use 
PrettusRepositoryContractsRepositoryInterface;
use 
PrettusRepositoryEventsRepositoryEventBase;
use 
PrettusRepositoryHelpersCacheKeys;

/**
 * Class CleanCacheRepository
 * @package PrettusRepositoryListeners
 */
class CleanCacheRepository
{

    
/**
     * @var CacheRepository
     */
    
protected $cache null;

    
/**
     * @var RepositoryInterface
     */
    
protected $repository null;

    
/**
     * @var Model
     */
    
protected $model null;

    
/**
     * @var string
     */
    
protected $action null;

    
/**
     *
     */
    
public function __construct()
    {
        
$this->cache app(config('repository.cache.repository''cache'));
    }

    
/**
     * @param RepositoryEventBase $event
     */
    
public function handle(RepositoryEventBase $event)
    {
        try {
            
$cleanEnabled config("repository.cache.clean.enabled"true);

            if (
$cleanEnabled) {
                
$this->repository $event->getRepository();
                
$this->model $event->getModel();
                
$this->action $event->getAction();

                if (
config("repository.cache.clean.on.{$this->action}"true)) {
                    
$cacheKeys CacheKeys::getKeys(get_class($this->repository));

                    if (
is_array($cacheKeys)) {
                        foreach (
$cacheKeys as $key) {
                            
$this->cache->forget($key);
                        }
                    }
                }
            }
        } catch (
Exception $e) {
            
Log::error($e->getMessage());
        }
    }
}
Онлайн: 0
Реклама