/
home
/
techb158
/
dev.balacoffee.com
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Cache
/
/home/techb158/dev.balacoffee.com/vendor/laravel/framework/src/Illuminate/Cache
mkdir
upload
Name
Size
Mode
Actions
Console/
-
0755
rm
Events/
-
0755
rm
RateLimiting/
-
0755
rm
ApcStore.php
2586
0644
edit
dl
rm
ApcWrapper.php
1898
0644
edit
dl
rm
ArrayLock.php
2080
0644
edit
dl
rm
ArrayStore.php
4661
0644
edit
dl
rm
CacheLock.php
1853
0644
edit
dl
rm
CacheManager.php
10650
0644
edit
dl
rm
CacheServiceProvider.php
1350
0644
edit
dl
rm
composer.json
1377
0644
edit
dl
rm
DatabaseLock.php
3640
0644
edit
dl
rm
DatabaseStore.php
10353
0644
edit
dl
rm
DynamoDbLock.php
1602
0644
edit
dl
rm
DynamoDbStore.php
14833
0644
edit
dl
rm
FileStore.php
8612
0644
edit
dl
rm
HasCacheLock.php
681
0644
edit
dl
rm
LICENSE.md
1075
0644
edit
dl
rm
Lock.php
3547
0644
edit
dl
rm
LuaScripts.php
462
0644
edit
dl
rm
MemcachedConnector.php
2382
0644
edit
dl
rm
MemcachedLock.php
1453
0644
edit
dl
rm
MemcachedStore.php
6326
0644
edit
dl
rm
NoLock.php
692
0644
edit
dl
rm
NullStore.php
2399
0644
edit
dl
rm
PhpRedisLock.php
829
0644
edit
dl
rm
RateLimiter.php
4989
0644
edit
dl
rm
RedisLock.php
1794
0644
edit
dl
rm
RedisStore.php
8168
0644
edit
dl
rm
RedisTaggedCache.php
5339
0644
edit
dl
rm
Repository.php
16481
0644
edit
dl
rm
RetrievesMultipleKeys.php
1155
0644
edit
dl
rm
TaggableStore.php
421
0644
edit
dl
rm
TaggedCache.php
2561
0644
edit
dl
rm
TagSet.php
2517
0644
edit
dl
rm
Edit:
/home/techb158/dev.balacoffee.com/vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php
(4989B)
<?php namespace Illuminate\Cache; use Closure; use Illuminate\Contracts\Cache\Repository as Cache; use Illuminate\Support\InteractsWithTime; class RateLimiter { use InteractsWithTime; /** * The cache store implementation. * * @var \Illuminate\Contracts\Cache\Repository */ protected $cache; /** * The configured limit object resolvers. * * @var array */ protected $limiters = []; /** * Create a new rate limiter instance. * * @param \Illuminate\Contracts\Cache\Repository $cache * @return void */ public function __construct(Cache $cache) { $this->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)); } }
Save
cmd:
run