Symfony You should either make the service public, or stop using the container directly and use dependency injection instead.

флоппик

promotor fidei
Команда форума
Партнер клуба
@флоппик
А какой шрифт здесь используется? и под какой ос? (насчет операционки вопрос тоже, т.к. просто часто на разных системах полностью разный ренедер)
@Yoskaldyr
Это Fira Code Retina под mac osx, в пхпшторме выставлено сглаживание Grayscale. (На винде лучше Fira Code или Fira Code Medium) с выбранным сглаживанием subpixel, будет выглядеть примерно так же. Вообще, у меня в офисе стремный моник, поэтому я там ставлю 14 размер. На хорошей ретине выглядит отлично с 12 размером. К сожалению, из-за лигатур нечетные размеры шрифтов выглядят плохо, и 13 я не ставлю (
 

флоппик

promotor fidei
Команда форума
Партнер клуба
я имею ввиду, как этот партнер, от которого зависит какой загрузчик заинжектится, попадает в ту, симфониевскую фабрику?
Ну это я из настоящего кода почистил кусок просто, он не совсем настоящий. В реальности, там есть RequestPartnerMiddleware, которая по апи-токену в реквесте создает IntegrationTypeAwarePartner (грубо говоря, по токену ищется в базе партнер, у него смотрится тип интеграции в табличке, кладется в контейнер) Потом внутри сервис провайдер PartnerConfigurationServiceProvider биндит 100500 зависимостей партнера в контейнер под нужные интерфейсы. Потому что например, для демо-интеграции - сессии и стораджи транзакций смотрят в редис с маленьким ттл у записей, а реальные - кладутся в разные коннекшны к разным базам.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Явная зависимость от фабрики, как по мне, лучше неявной.
Проблема тут видна через написание тестов: как только тебе нужно написать тест к этой логике, сразу всплывает вопрос: почему нужно мокать фабрику, а не имплементацию?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Фанату нужен не партнер, а хелпер. Партнер только определяет, какой будет хелпер. PartnerServiсeProvider, видимо, получает в конструктор DI-контейнер, и в него добавляет что-то по команде register(). Что он регистрирует?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@флоппик ага, значит, я правильно понял. Если у тебя 100500 зависимостей - это вполне имеет смысл.

Загрузка файлов может быть, а может не быть бизнес-логикой в зависимости от скоупа домена.
+1. обработка пользовательских фотографий - очень даже логика приложений, которые занимаются хранением и обработкой пользовательских данных; например, avito, facebook, большая часть SAAS сервисов в мире

Проблема тут видна через написание тестов: как только тебе нужно написать тест к этой логике, сразу всплывает вопрос: почему нужно мокать фабрику, а не имплементацию?
Почему бы фабрике не отдать мок? Ну, захардкодили фабрику, понимаю, что неидеально, это допуск такой.
 

Adelf

Administrator
Команда форума
+1. обработка пользовательских фотографий - очень даже логика приложений, которые занимаются хранением и обработкой пользовательских данных; например, avito, facebook, большая часть SAAS сервисов в мире
логика приложения - да. но не бизнес-логика.
 
Сверху