userbase / client-bundle
Symfony 的 UserBase 客户端包
v1.6.0
2022-09-26 20:11 UTC
Requires
- symfony/config: ^4.0 || ^5.0 || ^6.0
- symfony/dependency-injection: ^4.0 || ^5.0 || ^6.0
- symfony/http-kernel: ^4.0 || ^5.0, >=5.1.5 || ^6.0
- userbase/client: ^2.0 || ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
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 Cache 和 Cache 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
控制台命令实现)。更好的选择是 Memcached 或 Redis。