mathieu-bour/laravel-cache-fallback

此包已废弃,不再维护。未建议替代包。

允许Laravel缓存连接回退到更稳定的驱动程序。

1.0.0 2020-12-29 11:30 UTC

This package is auto-updated.

Last update: 2022-07-29 02:19:10 UTC


README

GitHub license Packagist Version Packagist GitHub issues GitHub pull requests Codecov Scrutinizer code quality

允许Laravel缓存连接回退到更稳定的驱动程序。

此包特别适用于您想要应用程序具有 容错性 的情况。例如,当使用Redis实例作为缓存存储时,您可能希望在Redis实例不可用时回退到文件存储。

此包遵循 语义版本规范

致谢

此包受到 fingo/laravel-cache-fallback 的启发,即使它不再维护。

先决条件

  • PHP >= 7.1.3
  • Laravel/Lumen 5.8, 6.x, 7.x 或 8.x

支持的缓存方法

此包支持大多数缓存方法(例如,获取、设置等)。目前不支持标签缓存。

兼容性矩阵

此包针对以下矩阵进行了测试

Laravel/Lumen PHP 7.1 PHP 7.2 PHP 7.3 PHP 7.4 PHP 8.0
5.8 ✔️ ✔️ ✔️ ✔️
6.0 ✔️ ✔️ ✔️
7.0 ✔️ ✔️ ✔️
8.0 ✔️ ✔️ ✔️

安装

只需将 mathieu-bour/laravel-cache-fallback 添加到您的包依赖中。

composer require mathieu-bour/laravel-cache-fallback

此包不发布任何资源,其配置直接在 config/cache.php 文件中处理。

Laravel

此包使用 Laravel 包发现,因此您不需要做任何事情。如果您已禁用此功能,可以在 config/app.php 中注册服务提供程序。

Lumen

将服务提供程序注册到 bootstrap/app.php 文件中,如下所示

$app->register(Windy\CacheFallback\CacheFallbackServiceProvider::class);

用法

现在,每个缓存存储都可以在其配置中有一个 fallback 键。如果在执行期间,缓存驱动程序抛出异常,则将使用回退驱动程序。

<?php

return [
    'default' => env('CACHE_DRIVER', 'file'),
    'stores'  => [
        'file'  => [
            'driver'   => 'file',
            'path'     => storage_path('framework/cache/data'),
        ],
        'redis' => [
            'driver'     => 'redis',
            'connection' => env('CACHE_REDIS_CONNECTION', 'cache'),
            'fallback'   => 'file',
        ],
    ],
];

在此示例中,redis 存储回退到 file

如果没有定义 fallback,则将像往常一样引发原始异常。请注意,此包不提供任何循环通过存储的方法:如果A回退到B,而B回退到A,则B将立即抛出异常。