Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/helick/cache-helpers
Helpers for the WordPress object cache and transients
https://github.com/helick/cache-helpers
composer composer-library wordpress
Last synced: about 1 month ago
JSON representation
Helpers for the WordPress object cache and transients
- Host: GitHub
- URL: https://github.com/helick/cache-helpers
- Owner: helick
- License: mit
- Created: 2019-06-26T13:51:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-07-31T19:57:19.000Z (over 5 years ago)
- Last Synced: 2024-04-24T20:03:23.887Z (8 months ago)
- Topics: composer, composer-library, wordpress
- Language: PHP
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Helick Cache Helpers
Helpers for the WordPress object cache and transients.
[![Latest Version on Packagist][ico-version]][link-packagist]
[![Total Downloads][ico-downloads]][link-downloads]
[![Software License][ico-license]](LICENSE.md)
[![Quality Score][ico-code-quality]][link-code-quality]## Requirements
Make sure all dependencies have been installed before moving on:
* [PHP](http://php.net/manual/en/install.php) >= 7.1
* [Composer](https://getcomposer.org/download/)## Install
Via Composer:
``` bash
$ composer require helick/cache-helpers
```## Usage
The package provides the following functions for WordPress:
* [`cache_remember()`](#cache_remember)
* [`cache_forget()`](#cache_forget)
* [`transient_remember()`](#transient_remember)
* [`transient_forget()`](#transient_forget)
* [`site_transient_remember()`](#site_transient_remember)
* [`site_transient_forget()`](#site_transient_forget)Each function checks the response of the callback for a `WP_Error` object, ensuring you're not caching temporary errors for long periods of time. PHP Exceptions will also not be cached.
### cache_remember()
Get a value from the object cache, if one doesn't exist, run the given callback to generate and cache the value.
#### Parameters
- (string) $key
- The cache key.
- (callable) $callback
- The callback used to generate and cache the value.
- (string) $group
- Optional. The cache group. Default is empty.
- (int) $expire
- Optional. The number of seconds before the cache entry should expire. Default is 0 (as long as possible).
#### Example
```php
use function Helick\CacheHelpers\cache_remember;
function get_latest_posts()
{
return cache_remember('latest', function () {
return new WP_Query([
'posts_per_page' => 5,
'orderby' => 'post_date',
'order' => 'desc',
]);
}, 'posts', HOUR_IN_SECONDS);
}
```
### cache_forget()
Get and subsequently delete a value from the object cache.
#### Parameters
- (string) $key
- The cache key.
- (string) $group
- Optional. The cache group. Default is empty.
- (mixed) $default
- Optional. The default value to return if the given key doesn't exist in the object cache. Default is null.
#### Example
```php
use function Helick\CacheHelpers\cache_forget;
function display_error_message()
{
$error_message = cache_forget('form_errors', 'my-cache-group', false);
if ($error_message) {
echo 'An error occurred: ' . $error_message;
}
}
```
### transient_remember()
Get a value from the transients, if one doesn't exist, run the given callback to generate and cache the value.
#### Parameters
- (string) $key
- The cache key.
- (callable) $callback
- The callback used to generate and cache the value.
- (int) $expire
- Optional. The number of seconds before the cache entry should expire. Default is 0 (as long as possible).
#### Example
```php
use function Helick\CacheHelpers\transient_remember;
function get_tweets()
{
$user_id = get_current_user_id();
$key = 'latest_tweets_' . $user_id;
return transient_remember($key, function () use ($user_id) {
return get_latest_tweets_for_user($user_id);
}, 15 * MINUTE_IN_SECONDS);
}
```
### transient_forget()
Get and subsequently delete a value from the transients.
#### Parameters
- (string) $key
- The cache key.
- (mixed) $default
- Optional. The default value to return if the given key doesn't exist in transients. Default is null.
```php
use function Helick\CacheHelpers\transient_forget;
function display_error_message()
{
$error_message = transient_forget('form_errors', false);
if ($error_message) {
echo 'An error occurred: ' . $error_message;
}
}
```
### site_transient_remember()
Get a value from the transients, if one doesn't exist, run the given callback to generate and cache the value.
This function shares arguments and behavior with [`transient_remember()`](#transient_remember), but works network-wide when using WordPress Multisite.
#### Parameters
- (string) $key
- The cache key.
- (mixed) $default
- Optional. The default value to return if the given key doesn't exist in transients. Default is null.
```php
use function Helick\CacheHelpers\site_transient_remember;
function get_tweets()
{
$user_id = get_current_user_id();
$key = 'latest_tweets_' . $user_id;
return site_transient_remember($key, function () use ($user_id) {
return get_latest_tweets_for_user($user_id);
}, 15 * MINUTE_IN_SECONDS);
}
```
### site_transient_forget()
Get and subsequently delete a value from the site transients.
This function shares arguments and behavior with [`transient_forget()`](#transient_forget), but works network-wide when using WordPress Multisite.
#### Parameters
- (string) $key
- The cache key.
- (mixed) $default
- Optional. The default value to return if the given key doesn't exist in transients. Default is null.
```php
use function Helick\CacheHelpers\site_transient_forget;
function display_error_message()
{
$error_message = site_transient_forget('form_errors', false);
if ($error_message) {
echo 'An error occurred: ' . $error_message;
}
}
```
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details.
## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
## Credits
- [Evgenii Nasyrov][link-author]
- [All Contributors][link-contributors]
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
[ico-version]: https://img.shields.io/packagist/v/helick/cache-helpers.svg?style=flat-square
[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square
[ico-code-quality]: https://img.shields.io/scrutinizer/g/helick/cache-helpers.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/helick/cache-helpers.svg?style=flat-square
[link-packagist]: https://packagist.org/packages/helick/cache-helpers
[link-code-quality]: https://scrutinizer-ci.com/g/helick/cache-helpers
[link-downloads]: https://packagist.org/packages/helick/cache-helpers
[link-author]: https://github.com/nasyrov
[link-contributors]: ../../contributors