userbase/client-bundle

Symfony 的 UserBase 客户端包

安装数: 2,519

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 2

公开问题: 0

类型:symfony-bundle

v1.6.0 2022-09-26 20:11 UTC

This package is auto-updated.

Last update: 2024-08-27 00:52:08 UTC


README

打开命令行,进入您的项目目录并执行

$ composer require --no-scripts userbase/client-bundle

创建包配置

# config/packages/userbase-client-bundle.yaml
user_base_client:
  http_client:
    url: '%env(USERBASE_DSN)%'
# .env.local
USERBASE_DSN=https://key:secret@userbase.example.com/api/v1

完成安装

$ composer auto-scripts post-install-cmd

缓存

在认证过程中,可以缓存从 Userbase 获取的用户数据。这可以减少 Userbase 必须承担的负载,并使您的应用程序运行更快。

首先,您将配置一个 PSR-6 缓存池和适配器,然后您将配置 Bundle 以使用缓存。

配置缓存

您应该熟悉 Symfony CacheCache Component 文档。

例如,以下是在 FrameworkBundle 中使用 FilesystemAdapter 创建缓存所需的配置。

在您的 Service Container 配置中配置适配器

# config/services.yaml

parameters:
  ...
  app.userbase_cache.path: 'path/to/a/directory'
  app.userbase_cache.default_lifetime_secs: 600

services:
  ...
  userbase_cache.adapter:
    class: Symfony\Component\Cache\Adapter\FilesystemAdapter
    arguments:
      - 'userbase'
      - '%app.userbase_cache.default_lifetime_secs%'
      - '%app.userbase_cache.path%'

这将使具有 id userbase_cache.adapter 的缓存适配器作为服务可用。现在可以配置缓存池

# config/packages/prod/cache.yaml

framework:
  cache:
    pools:
      userbase_cache:
        adapter: userbase_cache.adapter

这将使具有 id userbase_cache 的缓存池可用。现在可以配置 Bundle

# config/packages/prod/userbase.yaml

user_base_client:
  ...
  cache:
    id: userbase_cache
    lifetime: '%app.userbase_cache.default_lifetime_secs%' # or, e.g. 3600

最后,清除应用程序缓存以激活配置

bin/console cache:clear

就这样。

请注意,文件系统缓存适配器不是最佳选择,因为它速度较慢,且没有内置的清除缓存项的方法(可以使用 bin/console cache:pool:prune 控制台命令实现)。更好的选择是 MemcachedRedis