Привет, ребята!
Подскажите, пожалуйста, как безопасно использовать биндинг на основе контекста в таком случае.
Большенство классов в проекте должны через внедрение зависимостей получить вместо EncrypterContract стандартный Encrypter Ларавеля.
И лишь один класс должен получить нашу собственную реализацию - EncrypterCustom.
Судя по доке правильно будет в AppServiceProvider прописать все эти привязки через механизм $this->app->when.
Но тогда получится, что записей вида:
$this->app->when(TetsClass1::class)
->needs(EncrypterContract)
->give(Encrypter::class);
должно быть столько, сколько классов используют EncrypterContract, что кажется очень неудобным.
Поэтому, возник вопрос, можно ли использовать одну привязку "для всех случаев", типо:
$this->app->singleton(EncrypterContract::class, Encrypter::class);
И только одну для исключительного случая заюзать через $this->app->when, а не городить $this->app->when для каждого класса в проекте, которому нужен шифратор?