問題は(一言で言えば)次のとおりです。
現在のソリューションは遅すぎます。
- Symfony Security コンポーネントは、すべてのページビューでユーザーをリロードします。
- ユーザーは、低速の外部 API にアクセスする独自の UserProvider から読み込まれます。
私たちの頭に浮かぶ最初のアイデアは次のとおりです。
外部 API からの情報をローカル データベースまたは memcache にキャッシュできます。
私の質問:
- これを実現するのに役立つバンドルはありますか?
- 独自の UserProvider ですべてのキャッシュを処理する必要がありますか?
- キャッシュする必要があるユーザーをドクトリンエンティティに入れ、チェーンプロバイダーを使用して最初にドクトリンからロードする方が良いでしょうか? この場合、ユーザー オブジェクトの限られた有効期間をどのように処理すればよいでしょうか。
- 何もキャッシュせずに、プロバイダーの更新関数を作成して、最後のリロードがあまりにも前に発生した場合にのみユーザーをリロードするようにするのはどうですか?
これを効率的に行う方法に関する他のアイデアはありますか?
乾杯、
ティモン