私はRedBeanORM(http://redbeanphp.com)を使用して、SilexセキュリティプロバイダーパッケージのUserInterfaceとUserProviderInterfaceを実装しようとしています。
RedBean ORMがそのオブジェクトの関数を処理する方法のために、Beanオブジェクトを別のクラスでラップする必要がありました。
これは認証には最適ですが、RememberMe機能のテストに失敗します。
チェーンのどこかで、セキュリティパッケージがオブジェクトをシリアル化することに気づきました。
これがエラーの原因である可能性があると考えたため、ラッパークラスで「id」と「password」のプロパティを作成し、__ sleepメソッドと__wakeupメソッドを使用して、スリープ中にBeanを無視し、ウェイクアップ時にリロードしました。__wakeup中にすべてが正しくロードされているように見えますが、「RememberMe」機能のテストはまだ失敗しています。
コードのgithubリポジトリを作成しました。誰かアイデアがあれば、よろしくお願いします!
何らかの理由で、RedBean、Silex、およびPHPUnitは、自分たちをリポジトリに含めることを許可していません。簡単な作曲家のアップデートはあなたのためにそれらを引き下げるはずです。理由がわかれば、その答えもいただければ幸いです。
githubリポジトリは次の場所にあります。
https://github.com/christianmagill/silex-redbean-security
該当するファイルは
データベースにテストユーザーを作成するには:
/setup.php
テストを実行するには:
/index.php
UserInterfaceの私の実装:
/src/App/Model/UserSecurityWrapper.php
UserProviderInterfaceの私の実装:
/src/App/Model/UserProvider.php
私の修正したテスト:
/src/App/Test/RememberMeRedBeanServiceProviderTest.php
元のテスト:
/vendor/silex/silex/tests/Silex/Tests/Provider/RememberMeServiceProviderTest.php