0

セントリー 2 でセントリー クラスを拡張しようとすると、いくつかの問題が発生します。

新しいファサードを作成しました:

名前空間のユーザー;

Illuminate\Support\Facades\Facade を使用します。

class ADSentryFacade は Facade を拡張します {

    /**
     * コンポーネントの登録名を取得します。
     *
     * @戻り文字列
     */
    保護された静的関数 getFacadeAccessor()
    {
        return 'pusers\adsentry';
    }

}

歩哨クラスを拡張しました (すべての使用名前空間は、投稿でクリーンアップするために削除されました)。この時点でそれを機能させようとするだけで、明らかにこれにはさらに多くのことがあります。

名前空間のユーザー;

class ADSentry extends \Cartalyst\Sentry\Sentry {   
    public function authenticate(array $credentials, $remember = false, $adUser = false)
    {       
        return (string)$this->throttleProvider->isEnabled();
    }
}

app.php 内で、エイリアスを次のように変更しました。

'Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry'

'Sentry' => 'pusers\ADSentryFacade'

問題: 自分のエイリアスを使用すると、実際の Sentry クラスが起動していること以外はほとんど何もありません。ご覧のとおり、スロットリングが有効になっているかどうかを確認しようとしています。私のエイリアスを使用すると(常にtrueを返す)、config.phpファイルは使用されませんが、通常のエイリアスを使用するように戻すと、正常に機能します(構成でfalseに設定しているため、falseを返します)。

私が間違っていることについてのヒントはありますか?実際の Sentry クラスを拡張しようとしている人を見つけることができませんでした。私が見つけた唯一のことは、sentry 2 フォーラムで、管理者の 1 人が誰かに新しいファサードを作成してから Sentry を拡張するように勧めましたが、それだけでした。

私が提供できるその他の情報は、必要なものを教えてください。ありがとう!

4

1 に答える 1

0

cartalyst チャンネルで十分なポインタを手に入れました。

先に進み、サービス プロバイダーを作成しました。アプリ名を sentry から adsentry に変更しました。次に、ファサードで「pusers\adsentry」から「adsentry」に変更すると、うまくいきました。

于 2014-02-01T18:25:47.127 に答える