-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated to support Laravel <= 7.0 when there were no cache locks. Add…
…ed basic tests for locks. Updated Readme.md to clarify the way tags are working and their main purpose.
- Loading branch information
Showing
14 changed files
with
287 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
AlternativeLaravelCache/Store/AlternativeFileCacheStoreWithLocks.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<?php | ||
|
||
namespace AlternativeLaravelCache\Store; | ||
|
||
use Illuminate\Cache\HasCacheLock; | ||
use Illuminate\Contracts\Cache\LockProvider; | ||
|
||
class AlternativeFileCacheStoreWithLocks extends AlternativeFileCacheStore implements LockProvider { | ||
|
||
use HasCacheLock; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 11 additions & 0 deletions
11
AlternativeLaravelCache/Store/AlternativeHierarchialFileCacheStoreWithLocks.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
namespace AlternativeLaravelCache\Store; | ||
|
||
use Illuminate\Cache\HasCacheLock; | ||
|
||
class AlternativeHierarchialFileCacheStoreWithLocks extends AlternativeHierarchialFileCacheStore { | ||
|
||
use HasCacheLock; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31 changes: 31 additions & 0 deletions
31
AlternativeLaravelCache/Store/AlternativeMemcachedCacheStoreWithLocks.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<?php | ||
|
||
namespace AlternativeLaravelCache\Store; | ||
|
||
use Illuminate\Cache\MemcachedLock; | ||
|
||
class AlternativeMemcachedCacheStoreWithLocks extends AlternativeMemcachedCacheStore { | ||
|
||
/** | ||
* Get a lock instance. | ||
* | ||
* @param string $name | ||
* @param int $seconds | ||
* @param string|null $owner | ||
* @return \Illuminate\Contracts\Cache\Lock | ||
*/ | ||
public function lock($name, $seconds = 0, $owner = null) { | ||
return new MemcachedLock($this->getDb(), $this->prefix . $name, $seconds, $owner); | ||
} | ||
|
||
/** | ||
* Restore a lock instance using the owner identifier. | ||
* | ||
* @param string $name | ||
* @param string $owner | ||
* @return \Illuminate\Contracts\Cache\Lock | ||
*/ | ||
public function restoreLock($name, $owner) { | ||
return $this->lock($name, 0, $owner); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
AlternativeLaravelCache/Store/AlternativeRedisCacheStoreWithLocks.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
<?php | ||
|
||
namespace AlternativeLaravelCache\Store; | ||
|
||
use Illuminate\Cache\RedisLock; | ||
|
||
class AlternativeRedisCacheStoreWithLocks extends AlternativeRedisCacheStore { | ||
|
||
/** | ||
* The name of the connection that should be used for locks. | ||
* | ||
* @var string | ||
*/ | ||
protected $lockConnection; | ||
|
||
/** | ||
* Specify the name of the connection that should be used to manage locks. | ||
* | ||
* @param string $connection | ||
* @return $this | ||
*/ | ||
public function setLockConnection($connection) { | ||
$this->lockConnection = $connection; | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* Get the Redis connection instance that should be used to manage locks. | ||
* | ||
* @return \Illuminate\Redis\Connections\Connection | ||
*/ | ||
public function lockConnection() { | ||
return $this->getDb() | ||
->connection($this->lockConnection ?? $this->connection); | ||
} | ||
|
||
/** | ||
* Get a lock instance. | ||
* | ||
* @param string $name | ||
* @param int $seconds | ||
* @param string|null $owner | ||
* @return \Illuminate\Contracts\Cache\Lock | ||
*/ | ||
public function lock($name, $seconds = 0, $owner = null) { | ||
return new RedisLock($this->lockConnection(), $this->prefix . $name, $seconds, $owner); | ||
} | ||
|
||
/** | ||
* Restore a lock instance using the owner identifier. | ||
* | ||
* @param string $name | ||
* @param string $owner | ||
* @return \Illuminate\Contracts\Cache\Lock | ||
*/ | ||
public function restoreLock($name, $owner) { | ||
return $this->lock($name, 0, $owner); | ||
} | ||
} |
Oops, something went wrong.