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

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

24 ответов

17 просмотров

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

$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 различных агрегатов в конфиги и теперь надо на каждую маке() ?)

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

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

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

.

+

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

+

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта