Skip to content

Laravel Policy Soft Cache helps prevent performance problems with duplicated Policy calls within your application lifecycle.

License

Notifications You must be signed in to change notification settings

prevplan/laravel-policy-soft-cache

 
 

Repository files navigation

Laravel Policy Soft Cache Package

Latest Version on Packagist Tests Fix PHP code style issues Total Downloads

This package helps prevent performance problems with duplicated Policy calls within your application lifecycle. To achieve this policy-calls are soft cached after they have run initially. The cache does not cache policy calls through concurrent requests; only duplicated calls within a single request are cached.

Requirements

This package is compatible with Laravel 9 & 10, and PHP 8.1 & 8.2.

Installation

You can install the package via composer:

composer require innoge/laravel-policy-soft-cache

You can publish the config file with:

php artisan vendor:publish --provider="Innoge\LaravelPolicySoftCache\LaravelPolicySoftCacheServiceProvider""

This is the contents of the published config file:

return [
    /*
     * When enabled, the package will cache the results of all Policies in your Laravel application
     */
    'cache_all_policies' => env('CACHE_ALL_POLICIES', true),
];

You can also use CACHE_ALL_POLICIES in your .env file to change it.

CACHE_ALL_POLICIES=false

Usage

By default, this package caches all policy calls of your entire application. You can disable this behavior by setting the cache_all_policiesconfiguration to false. Now you can specify which Policy classes should be soft cached and which not. If you want your policy to be cached, add the Innoge\LaravelPolicySoftCache\Contracts\SoftCacheable interface.

For Example:

use Innoge\LaravelPolicySoftCache\Contracts\SoftCacheable;

class UserPolicy implements SoftCacheable
{
    ...
}

Clearing the cache

Sometimes you want to clear the policy cache after model changes. You can call the Innoge\LaravelPolicySoftCache::flushCache(); method.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Laravel Policy Soft Cache helps prevent performance problems with duplicated Policy calls within your application lifecycle.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%