richan-fongdasen/firestore-laravel

Google Cloud Firestore 驱动程序,用于 Laravel 缓存和会话。

1.0.0 2024-05-26 04:34 UTC

This package is auto-updated.

Last update: 2024-09-08 12:32:11 UTC


README

Latest Version on Packagist License: MIT PHPStan Test Coding Style codecov Total Downloads

此包允许您将 Google Cloud Firestore 作为 Laravel 应用程序中缓存和会话存储的驱动程序使用。此包建立在官方 Google Cloud Firestore PHP 客户端库 之上。

警告

此包目前还不兼容 Laravel Octane

要求

  • PHP 8.2 或更高版本
  • Laravel 10.0 或更高版本
  • PHP 扩展: grpc
  • PHP 扩展: protobuf
  • Google Cloud Firestore 凭证

安装

您可以通过 composer 安装此包

composer require richan-fongdasen/firestore-laravel

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="firestore-laravel-config"

这是发布配置文件的内容

return [
    'project_id'  => env('GOOGLE_CLOUD_PROJECT'),
    'credentials' => env('GOOGLE_APPLICATION_CREDENTIALS'),
    'database'    => env('FIRESTORE_DATABASE', '(default)'),

    'cache' => [
        'collection'           => env('FIRESTORE_CACHE_COLLECTION', 'cache'),
        'key_attribute'        => env('FIRESTORE_CACHE_KEY_ATTR', 'key'),
        'value_attribute'      => env('FIRESTORE_CACHE_VALUE_ATTR', 'value'),
        'expiration_attribute' => env('FIRESTORE_CACHE_EXPIRATION_ATTR', 'expired_at'),
    ],

    'session' => [
        'collection' => env('FIRESTORE_SESSION_COLLECTION', 'sessions'),
    ],
];

配置

设置 Firestore 身份验证

有关如何对您的 Google Cloud Firestore 客户端进行身份验证的更多信息,请参阅 身份验证指南

包配置

您可以通过在您的 .env 文件中设置以下环境变量来配置包。

GOOGLE_CLOUD_PROJECT=your-google-cloud-project-id
GOOGLE_APPLICATION_CREDENTIALS="/path-to/your-service-account.json"
FIRESTORE_DATABASE="(default)"
FIRESTORE_CACHE_COLLECTION=cache
FIRESTORE_CACHE_KEY_ATTR=key
FIRESTORE_CACHE_VALUE_ATTR=value
FIRESTORE_CACHE_EXPIRATION_ATTR=expired_at
FIRESTORE_SESSION_COLLECTION=sessions

缓存存储配置

为了将 Firestore 用作缓存存储,您需要将以下配置追加到 config/cache.php 文件中。

'stores' => [
    'firestore' => [
        'driver' => 'firestore',
    ],
],

会话驱动程序配置

为了将 Firestore 用作会话存储,您需要修改您的 .env 文件中的 SESSION_DRIVER 环境变量。

SESSION_DRIVER=firestore

使用

此包没有特殊的使用方法。您可以使用 Cache 和 Session 存储就像您在 Laravel 中通常做的那样。

// Cache store
Cache::put('key', 'value', 60); // Store a value in the cache for 60 seconds

$value = Cache::get('key'); // Retrieve a value from the cache

// Session
session(['key' => 'value']); // Store a value in the session

$value = session('key'); // Retrieve a value from the session

测试

composer test

更改日志

有关最近更改的更多信息,请参阅 更改日志

贡献

有关详细信息,请参阅 贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件