169 похожих чатов

Всем привет. Есть сервисный класс который принимает в конструкторе токен,

сооветсвенно из-за этого не могу обычном способом инжектить этот сервис в других классах через конструктор, т.к. лара не понимает откуда брать токен. Пока что делаю так:
resolve(Service::class, ['accessToken' => $accessToken]);

Мб кто подскажет может есть способ поудобнее да покрасивше?

5 ответов

17 просмотров

можешь это в сервис провайдере настроить, вот пример https://laravel.com/docs/10.x/container#binding-basics

Никита- Автор вопроса
Dmytro 🇺🇦
можешь это в сервис провайдере настроить, вот прим...

Вы скинули ссылку как, собственно, создавать сервисный класс со стороны сервис контейнера, у меня в принципе и сейчас нормально создается. Токен передается в конструктор, всё ок, сервис создается нормально. Меня интересует именно с клиентской точки зрения, как мне этот сервис нормально инжектить? Т.е. условно есть другой класс который хочет воспользоваться этим сервисом. Как ему его получить? Параметром в конструкторе нельзя т.к. не откуда будет взять токен. Сейчас единственный вариант который я вижу это: SomeClass { private readonly IService $service; public function __construct() { $this->service = resolve(IService::class, ['accessToken' => $accessToken]); } } В принципе вот как я написал сейчас работает, но имхо не люблю юзать всякие хелперы лары в сервисном слое, поэтому ищу другой способ.

Никита
Вы скинули ссылку как, собственно, создавать серви...

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

Никита
Вы скинули ссылку как, собственно, создавать серви...

Нет. Параметром в конструкторе. не откуда будет взять токен для этого как раз нужно настроить создание сервиса

Никита- Автор вопроса
Dmytro 🇺🇦
не совсем так. По ссылке пример как научить сервис...

Т.е. по вашему если я добавлю пример который вы скинули в провайдер, то такой код будет работать?: ExampleController { public function __construct( private readonly IService $service; ) {} }

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта