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

Кстати пользуясь случаем хотел задать вопрос) Когда есть какой то

глобальный сервис, его можно заинжектить. В контроллере так вообще передать его как зависимость и он будет доступен автоматом. А есть ли какой то красивый способ для сервисов, который зависят от данных, приходящих в контроллер? Например есть ProductService(Product $product), и чтобы его сделать, нужно либо создавать экземпляр после получения $product, либо инжектить сам сервис, а затем делать какой то сет типа $productService->set($product). Есть ли какое-то более изящное решение?

13 ответов

55 просмотров

Ты же у сервиса всё равно методы дёргаешь, почему не передавать данные сразу в методы?

Sergey-Shitikov Автор вопроса
Артём
Ты же у сервиса всё равно методы дёргаешь, почему ...

Ну тогда можно сделать сервис с пачкой статических методов. А если стейт нужен?

https://laravel.com/docs/10.x/container#contextual-binding

Sergey-Shitikov Автор вопроса
Egor Gruzdev
https://laravel.com/docs/10.x/container#contextual...

это да, но тогда вопрос как передать данные для контекстного биндинга, если они только в контроллере появляются

Sergey Shitikov
это да, но тогда вопрос как передать данные для ко...

если данные в request, то можно там где ты описываешь Сontextual binding там и сделать все, но лучше так не нужно делать, боль в поддержке

Sergey-Shitikov Автор вопроса

да устраивает, подумал есть какой нибудь более изящный подход))

Sergey-Shitikov Автор вопроса

а как можно request передать в contextual binding? я так делать конечно не буду, просто интересно

Sergey Shitikov
да устраивает, подумал есть какой нибудь более изя...

По мне так более очевидно и в поддержке норм.

Sergey Shitikov
а как можно request передать в contextual binding?...

Точно также как в случае просто bind, при использовании функции замыкания, первым аргументом передаёт Application, а он есть Котейнер.

Sergey-Shitikov Автор вопроса
Egor Gruzdev
Точно также как в случае просто bind, при использо...

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

Sergey Shitikov
да устраивает, подумал есть какой нибудь более изя...

Я бы и от setProduct() воздерживаться, зачем он там нужен. Судь contextual Binding, в зависимости от условий вернуть тот или иной сервис. Получил сервис, в него передал продукт в ответ получил результат все, зачем все эти set, храниния состояний и т.д.

Sergey-Shitikov Автор вопроса
Egor Gruzdev
Я бы и от setProduct() воздерживаться, зачем он та...

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта