https://github.com/sevenecks/laravel-simple-cache
Simple wrapper for the Laravel Cache facade that provides namespacing for keys and time to live functionality.
https://github.com/sevenecks/laravel-simple-cache
caching facade laravel laravel-cache laravel-package
Last synced: 4 months ago
JSON representation
Simple wrapper for the Laravel Cache facade that provides namespacing for keys and time to live functionality.
- Host: GitHub
- URL: https://github.com/sevenecks/laravel-simple-cache
- Owner: sevenecks
- License: mit
- Created: 2017-12-13T22:19:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-01-23T20:36:44.000Z (over 7 years ago)
- Last Synced: 2025-01-02T08:14:30.792Z (6 months ago)
- Topics: caching, facade, laravel, laravel-cache, laravel-package
- Language: PHP
- Homepage: https://github.com/SevenEcks/
- Size: 14.6 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
## Installation
Via Composer
```bash
composer require sevenecks/laravel-simple-cache
```## Usage
```php
render());
}
// return the view either from cache or the newly created one
return $view_content;
}
}
```## Caching CSRF Tokens in Laravel
In some cases you may have forms on your pages that need a CSRF token. If you cache a page with a CSRF token on it, the form won't work (or won't work for anyone but you). There is a solution to this that doesn't involve partial page caching.
Don't cache an actual CSRF token. Cache a placeholder and then replace it after you've either rendered your view content or pulled the already rendered content from the cache.
For example, if you have a Blade template that looks like this:
```html
```
You would replace the CSRF token with some placeholder text.
```html
```
Next, you would update your caching code to look something like this:
```php
public function contact()
{
$view_name = 'contact';
// check if we have a cached view
if (!($view_content = SimpleCache::getCached($view_name))) {
$view_content = view($view_name);
// now let's cache our new view
SimpleCache::setCache($view_name, $view_content->render());
}
// add in the csrf_token() post render/cache
$view_content = str_replace('xxxxxxxxxxxxxx', csrf_token(), $view_content);
// return the view either from cache or the newly created one
return $view_content;
}
```## API
```php
// prefix for the cache key to namespace it
public static $cache_key_prefix = 'simple-cache-';// text to tag the cache with by default
public static $cache_tag = '';/**
* Returns cached item by key if caching is enabled. If $tag_cached_content is
* true then the the $cache_tag will be applied to the end of the content after
* it is pulled from the cache.
*
* @param string $cache_key
* @return mixed false if cache is disabled or not present, string if it exists.
*/
public static function getCached(string $cache_key, bool $tag_cached_content = true)/**
* Concatinates the prefix plus dash with suffix to create the cache key
* namespace.
*
* @param string $prefix
* @param string $suffix
* @return string
*/
public static function buildCacheKey(string $prefix, string $suffix = '')/**
* Overwrite the static cache key prefix string with a user
* provided string for customization purporses.
*
* @param string $new_prefix
* @return none
*/
public static function setCacheKeyPrefix(string $new_prefix)/**
* Get the current $cache_key_prefix variable
*
* @return string
*/
public static function getCacheKeyPrefix()/**
* Overwrite the static cache tag string with a user
* provided string for customization purposes.
*
* @param string $new_tag
* @return none
*/
public static function setCacheTag(string $new_tag)/**
* Get the current $cache_tag static varible
*
* @return string
*/
public static function getCacheTag()/**
* Sets the cached content. $minutes_to_live set to -1 will live forever.
*
* @param string $cache_key
* @param string $content
* @param integer $minutes_to_live = -1
* @return mixed
*/
public static function setCache(string $cache_key, string $content, int $minutes_to_live = -1)/**
* Clear the entire cache
*
* @return none
*/
public static function clearCache()
```Now your application should function normally, while maintaining the benefits of caching.
## Change Log
Please see [Change Log](CHANGELOG.md) for more information.## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.