Запрос доступа к передовому опыту в поставщике услуг после применения промежуточного программного обеспечения - PullRequest
0 голосов
/ 21 декабря 2018

Я уже нашел ответ о том, как Запрос доступа в поставщике услуг после применения промежуточного программного обеспечения

$request = app(\Illuminate\Http\Request::class); 

Запрос доступа в поставщике услуг после применения промежуточного программного обеспечения

enter image description here

Но разве это хорошая практика?Есть ли лучший способ получить доступ к телу запроса внутри appServiceProvider ?Спасибо.

1 Ответ

0 голосов
/ 21 декабря 2018

Почти все привязки вашего контейнера служб будут зарегистрированы у поставщиков услуг, поэтому в большинстве этих примеров будет продемонстрировано использование контейнера в этом контексте.

Нет необходимости связывать классы в контейнереесли они не зависят от каких-либо интерфейсов.Контейнеру не нужно указывать, как строить эти объекты, поскольку он может автоматически разрешать эти объекты с помощью отражения.

Простые привязки

Внутри поставщика услуг у вас всегда есть доступ к контейнеру через свойство $this->app.Мы можем зарегистрировать привязку, используя метод bind, передавая имя класса или интерфейса, которое мы хотим зарегистрировать, вместе с Closure, который возвращает экземпляр класса:

$this->app->bind('HelpSpot\API', function ($app) {
    return new HelpSpot\API($app->make('HttpClient'));
});

Примечаниечто мы получаем сам контейнер в качестве аргумента для распознавателя.Затем мы можем использовать контейнер для разрешения зависимостей объекта, который мы строим.

Связывание A Singleton

SingletonМетод связывает класс или интерфейс в контейнер, который должен быть разрешен только один раз.После разрешения одноэлементной привязки тот же экземпляр объекта будет возвращен при последующих вызовах в контейнер:

$this->app->singleton('HelpSpot\API', function ($app) {
    return new HelpSpot\API($app->make('HttpClient'));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...