ScriptFUSION\Porter\Porter::applyCacheAdvice PHP Method

applyCacheAdvice() private method

private applyCacheAdvice ( ScriptFUSION\Porter\Provider\Provider $provider, CacheAdvice $cacheAdvice )
$provider ScriptFUSION\Porter\Provider\Provider
$cacheAdvice ScriptFUSION\Porter\Cache\CacheAdvice
    private function applyCacheAdvice(Provider $provider, CacheAdvice $cacheAdvice)
    {
        try {
            if (!$provider instanceof CacheToggle) {
                throw CacheUnavailableException::modify();
            }
            switch ("{$cacheAdvice}") {
                case CacheAdvice::MUST_CACHE:
                case CacheAdvice::SHOULD_CACHE:
                    $provider->enableCache();
                    break;
                case CacheAdvice::MUST_NOT_CACHE:
                case CacheAdvice::SHOULD_NOT_CACHE:
                    $provider->disableCache();
            }
        } catch (CacheUnavailableException $exception) {
            if ($cacheAdvice === CacheAdvice::MUST_NOT_CACHE() || $cacheAdvice === CacheAdvice::MUST_CACHE()) {
                throw $exception;
            }
        }
    }