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

А у тебя контракты внутри папки App ?

24 ответов

5 просмотров

Неа, вроде все правильно

$container->bind(ServiceFactoryInterface::class, ServiceFactory::class); $service = $container->make(ServiceFactoryInterface::class, ['configName' => 'test']); вот так забиндил

Vladyslav- Автор вопроса

ну на бинд то оно не ругается

Vladyslav- Автор вопроса

я тут вижу реализацию только ServiceFactoryInterface где в конструкт ServiceFactory ты передаешь инстанс ServiceInterface который не реализован ?

Vladyslav- Автор вопроса

а откуда тогда оно поймет что в конструкте надо вытащить из ServiceInterface ?

Мне кажется я разобрался, позвольте сделать рефлексию: 1. При условии что у меня в службах есть доп параметры, мне нужно указать конкретную реализацию $container->bind(ServiceInterface::class, function($app) { return $app->make(Service::class, ['configName' => 'sd']); }); Верно ли утверждение? Или можно это как-то по-другому упоковывать?

Vladyslav- Автор вопроса

🤔

Допустим сократить запись $container->bind(ServiceInterface::class, Service::class); а пото где-то вызвать $container->make(ServiceInterface::class, ['cofigName' => 'test']); Но так вылетает ошибка не указан типо парамерт

Тут вопрос встал, потому что параметры не хочется пробрасывать в колбэк, надо чтобы при вызове маке() в любой части программы можно было динамически конфигурировать службу

Угу, но вот ситуация чтобы забиндить службы и фабрику служб нужно в провайдере регистрировать, а потом ты ее можешь вызвать в любой части программы, значит должна быть make(интерфейс службы, конфиг)

делай через каллбек https://laravel.com/docs/8.x/container#simple-bindings

или так, а в give() каллбек https://laravel.com/docs/8.x/container#binding-primitives

+

в провайдере

Укажите параметры , в чем проблема

юзай вторую ссылку, это опционально будет работать

Нарушается динамичность параметров, допустим делаем в колбэке return make(Service::class, ['config' => config('a')]) - слишком жесткая ссылка на конфигурацию, не опционально, представь у меня 100 различных агрегатов в конфиги и теперь надо на каждую маке() ?)

каллбеком делай

Я представляю что в провайдере должно биндиться абстракция с реализацией, но конфигы передаваемые в конкретные реализации должны быть опциональными

я тебе уже ответил за опциональность выше

.

+

Я для выразительности, чтобы люди читающие поняли мой посыл, зачем мне так

+

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

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

Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
Всем привет! Стоит задачка, выбрать из выпадающего списка конкретный цвет. Пока реализовал через активацию контрола списка и выбора несколькими нажатиями стрелки вправо до нуж...
Роман.С
9
Карта сайта