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

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

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

13 ответов

62 просмотра

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

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() воздерживаться, зачем он та...

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

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

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

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