/var/www/flurhymez/vendor/laravel/framework/src/Illuminate/Cache
NameSizeModeActions
Console/-0755rm
Events/-0755rm
RateLimiting/-0755rm
ApcStore.php25860755editdlrm
ApcWrapper.php18980755editdlrm
ArrayLock.php20800644editdlrm
ArrayStore.php46610644editdlrm
CacheLock.php18530644editdlrm
CacheManager.php106500755editdlrm
CacheServiceProvider.php13500755editdlrm
composer.json13770755editdlrm
DatabaseLock.php36400644editdlrm
DatabaseStore.php103530755editdlrm
DynamoDbLock.php14860644editdlrm
DynamoDbStore.php148330644editdlrm
FileStore.php86120755editdlrm
HasCacheLock.php6810644editdlrm
LICENSE.md10750644editdlrm
Lock.php35470644editdlrm
LuaScripts.php4620644editdlrm
MemcachedConnector.php23820755editdlrm
MemcachedLock.php14530644editdlrm
MemcachedStore.php63260755editdlrm
NoLock.php6920644editdlrm
NullStore.php24080755editdlrm
PhpRedisLock.php31210644editdlrm
RateLimiter.php49890644editdlrm
RedisLock.php17940644editdlrm
RedisStore.php81680755editdlrm
RedisTaggedCache.php47970644editdlrm
Repository.php164720755editdlrm
RetrievesMultipleKeys.php11550644editdlrm
TaggableStore.php4210644editdlrm
TaggedCache.php25320644editdlrm
TagSet.php25170644editdlrm
Edit: /var/www/flurhymez/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php (4989B)
cache = $cache; } /** * Register a named limiter configuration. * * @param string $name * @param \Closure $callback * @return $this */ public function for(string $name, Closure $callback) { $this->limiters[$name] = $callback; return $this; } /** * Get the given named rate limiter. * * @param string $name * @return \Closure */ public function limiter(string $name) { return $this->limiters[$name] ?? null; } /** * Attempts to execute a callback if it's not limited. * * @param string $key * @param int $maxAttempts * @param \Closure $callback * @param int $decaySeconds * @return mixed */ public function attempt($key, $maxAttempts, Closure $callback, $decaySeconds = 60) { if ($this->tooManyAttempts($key, $maxAttempts)) { return false; } return tap($callback() ?: true, function () use ($key, $decaySeconds) { $this->hit($key, $decaySeconds); }); } /** * Determine if the given key has been "accessed" too many times. * * @param string $key * @param int $maxAttempts * @return bool */ public function tooManyAttempts($key, $maxAttempts) { $key = $this->cleanRateLimiterKey($key); if ($this->attempts($key) >= $maxAttempts) { if ($this->cache->has($key.':timer')) { return true; } $this->resetAttempts($key); } return false; } /** * Increment the counter for a given key for a given decay time. * * @param string $key * @param int $decaySeconds * @return int */ public function hit($key, $decaySeconds = 60) { $key = $this->cleanRateLimiterKey($key); $this->cache->add( $key.':timer', $this->availableAt($decaySeconds), $decaySeconds ); $added = $this->cache->add($key, 0, $decaySeconds); $hits = (int) $this->cache->increment($key); if (! $added && $hits == 1) { $this->cache->put($key, 1, $decaySeconds); } return $hits; } /** * Get the number of attempts for the given key. * * @param string $key * @return mixed */ public function attempts($key) { $key = $this->cleanRateLimiterKey($key); return $this->cache->get($key, 0); } /** * Reset the number of attempts for the given key. * * @param string $key * @return mixed */ public function resetAttempts($key) { $key = $this->cleanRateLimiterKey($key); return $this->cache->forget($key); } /** * Get the number of retries left for the given key. * * @param string $key * @param int $maxAttempts * @return int */ public function remaining($key, $maxAttempts) { $key = $this->cleanRateLimiterKey($key); $attempts = $this->attempts($key); return $maxAttempts - $attempts; } /** * Get the number of retries left for the given key. * * @param string $key * @param int $maxAttempts * @return int */ public function retriesLeft($key, $maxAttempts) { return $this->remaining($key, $maxAttempts); } /** * Clear the hits and lockout timer for the given key. * * @param string $key * @return void */ public function clear($key) { $key = $this->cleanRateLimiterKey($key); $this->resetAttempts($key); $this->cache->forget($key.':timer'); } /** * Get the number of seconds until the "key" is accessible again. * * @param string $key * @return int */ public function availableIn($key) { $key = $this->cleanRateLimiterKey($key); return max(0, $this->cache->get($key.':timer') - $this->currentTime()); } /** * Clean the rate limiter key from unicode characters. * * @param string $key * @return string */ public function cleanRateLimiterKey($key) { return preg_replace('/&([a-z])[a-z]+;/i', '$1', htmlentities($key)); } }