fyennyi/async-cache-bridge-laravel
最新稳定版本:v1.0.0
Composer 安装命令:
composer require fyennyi/async-cache-bridge-laravel
包简介
Laravel bridge for Fyennyi AsyncCache.
README 文档
README
This is a Laravel Bridge for the Async Cache PHP library. It integrates the asynchronous caching manager directly into your Laravel application, utilizing the standard Laravel Cache and Log components.
Features
- Automatic Discovery: Uses Laravel Package Discovery to register the service provider.
- Seamless Integration: Automatically injects:
cache.store(Your default Laravel cache repository, which implements PSR-16).log(Laravel Log Manager).
- Configuration Friendly: Allows defining global strategies via standard Laravel configuration files.
Installation
Run the following command in your terminal:
composer require fyennyi/async-cache-bridge-laravel
Configuration
To customize the configuration, publish the config file using the vendor:publish command:
php artisan vendor:publish --tag=async-cache-config
This will create a config/async-cache.php file where you can set the default strategy and adapter.
// config/async-cache.php return [ 'default_strategy' => 'strict', // strict, background, etc. 'adapter' => 'cache.store', // The service ID for the cache driver ];
Usage
Injecting the Manager
The bridge registers the Fyennyi\AsyncCache\AsyncCacheManager class as a singleton. You can use dependency injection to access it in your Controllers, Jobs, or Services.
namespace App\Http\Controllers; use Fyennyi\AsyncCache\AsyncCacheManager; use Fyennyi\AsyncCache\CacheOptions; use Illuminate\Http\Request; class WeatherController extends Controller { public function __construct( private AsyncCacheManager $cache ) {} public function index(string $city) { $promise = $this->cache->wrap( 'weather_' . $city, fn() => $this->fetchFromApi($city), new CacheOptions(ttl: 300) ); // Note: In a standard Laravel FPM request, you might need to wait for the promise. // In Swoole/Octane environments, you can handle it asynchronously. // Example for sync retrieval: return \React\Async\await($promise); } private function fetchFromApi(string $city) { /* ... */ } }
Contributing
Contributions are welcome and appreciated! Here's how you can contribute:
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please make sure to update tests as appropriate and adhere to the existing coding style.
License
This library is licensed under the CSSM Unlimited License v2.0 (CSSM-ULv2). See the LICENSE file for details.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: LicenseRef-CSSM-Unlimited-2.0
- 更新时间: 2026-01-29