@symfony_php

Страница 835 из 1418
Dmitriy
10.04.2018
19:18:52
Напрямую в сервисе инжектить другой сервис?
Пиши зависимость в аргумент конструктора, автовайринг сам все запилит

public function __construct(I\Want\This\Object $obj) {

Антон
10.04.2018
19:20:02
Да это знаю.

В ларавел также

Google
Dmitriy
10.04.2018
19:20:36
В чем вопрос тогда?

Антон
10.04.2018
19:21:10
Видимо я неправильно понял и злом считается инъекция самого класса контейнера

С этим соглашусь

Dmitriy
10.04.2018
19:22:11
ну да, зачем тебе контейнер в сервисе? Тебе ж нужны другие сервисы из контейнера, а не сам контейнер

Антон
10.04.2018
19:22:57
Вот у меня только одна беда. Был случай что в сервисе 3 репозитория и 3 сервиса иньектятся

Многовато

Alexandr
10.04.2018
19:23:20
за кеш не подумал так как ошибки постоянно разные были

Антон
10.04.2018
19:23:24
Видимо декомпозировать надо

Dmitriy
10.04.2018
19:23:24
как ты будешь тестировать, если у тебя контейнер в зависимостях? Создавать контейнер с моками всех используемых сервисов? некомильфо

Sergey
10.04.2018
19:24:26
Dmitriy
10.04.2018
19:24:30
иньектни entitymanager

Sergey
10.04.2018
19:24:37
твой код вообще не должен знать ничего о контейнерах

Google
Konstantin
10.04.2018
19:24:41
не иньекти энтити манагер

Sergey
10.04.2018
19:24:43
иньектни entitymanager
лучше репос

Konstantin
10.04.2018
19:24:47
иньекти репозитории

достать инфу - тебе хватит репы

создать инфу = создать сущность, отдать наверх (в контроллер) и там persist/flush

тут репозиторий даже не нужен

Антон
10.04.2018
19:25:24
Если 6 инъекций декомпозировать?

Сколько это норм

3?

Sergey
10.04.2018
19:25:43
если их больше 4х то уже стоит смотреть че так много

Антон
10.04.2018
19:25:54
Ок

Ещё вопрос. В ларавел есть коллекции. В симфони только массивы?

Sergey
10.04.2018
19:26:47
ArrayCollection в доктрине

но лучше массивы юзай

Антон
10.04.2018
19:27:06
У меня пока вообще нет бд. )))

Классы только

Valentin
10.04.2018
19:27:30
но лучше массивы юзай
А в чём беда с коллкцией от доктрины? Начал её юзать - вроде удобно

Sergey
10.04.2018
19:27:49
главное iterable типы юзать в аргументах)

Vladislav
10.04.2018
19:28:03
если тебе не надо функции типа contains, filter etc то массив

Google
Ярослав
10.04.2018
19:28:38
создать инфу = создать сущность, отдать наверх (в контроллер) и там persist/flush
Зависит от проекта ,в хорошей архитектуре не должно быть смешивания доменного и инфраструктурного слоев

Sergey
10.04.2018
19:28:57
ну началось)

Konstantin
10.04.2018
19:29:08
ща батю позову он за всё расскажет

Антон
10.04.2018
19:29:19
Сервисы это инфраструктура?

Ярослав
10.04.2018
19:29:25
ну началось)
Таки да )

Alexandr
10.04.2018
19:29:27
вобщем не работает не один вариант(( симфони смотрит только в двух директориях, app и vendor...twig

Антон
10.04.2018
19:29:39
Доменная область это entity, vo, dto?

Vladislav
10.04.2018
19:30:07
ух ща будет)

Антон
10.04.2018
19:30:09
ща батю позову он за всё расскажет
Батю не Fesor случайно зовут?

Konstantin
10.04.2018
19:30:23
Зависит от проекта ,в хорошей архитектуре не должно быть смешивания доменного и инфраструктурного слоев
ради интереса - кинь пример такой архитектуры, хочу посмотреть понять что нибудь правильное

Ярослав
10.04.2018
19:30:34
Сервисы это инфраструктура?
Инфраструктура - конкретные библиотеки, инструменты, фреймворки

Антон
10.04.2018
19:31:04
шаришь
Он мне дал задание сделать клон убера

Вот делаю на симфони

Ярослав
10.04.2018
19:31:25
Сервисы это инфраструктура?
Сервисы должны относится к доменной логике и содержать описание бизнес процессов, абстрагируясь от используемых технологий

Vladislav
10.04.2018
19:31:30
Инфраструктура - конкретные библиотеки, инструменты, фреймворки
вот ты написал доменную модель, разделил с инфраструктурой. для чего? чтобы типа потом можно было фреймворк поменять?)

Alexandr
10.04.2018
19:31:40
If you need to refer to a template that lives in a bundle, Symfony uses the Twig namespaced syntax (@BundleName/directory/filename.html.twig).

Alexandr
10.04.2018
19:32:27
There are no registered paths for namespace "AppBundle".

Google
Vladislav
10.04.2018
19:32:29
это оч в идеальном мире

Ярослав
10.04.2018
19:32:35
Доменная область это entity, vo, dto?
При ddd именно так, а ещё aggregates, repository Если использовать анемичную модель, то dao + services

Konstantin
10.04.2018
19:32:48
There are no registered paths for namespace "AppBundle".
а с маленькой буквы попробуй все что после AppBundle написать

Dmitriy
10.04.2018
19:32:58
Vladislav
10.04.2018
19:33:55
При ddd именно так, а ещё aggregates, repository Если использовать анемичную модель, то dao + services
тогда надо выбрасывать доктрин репы, потому что они имплиментят доктриновский интерфейс.

Ярослав
10.04.2018
19:34:00
вот ты написал доменную модель, разделил с инфраструктурой. для чего? чтобы типа потом можно было фреймворк поменять?)
Чтобы не зависеть от конкретных технологий и решений Ты можешь писать приложение, не имея понятия какие бд или либы будут использоваться в конечном счёте, а при поддержке проекта ты сможешь жонглировать технологиями как захочешь, в зависимости от нагрузок

Admin
ERROR: S client not available

Alexandr
10.04.2018
19:34:20
в конфиге не надо прописывать конфиг для твига?

Антон
10.04.2018
19:35:14
Интересно существует ли хоть один проект с вышеописанными правилами ?

Vladislav
10.04.2018
19:35:28
"жонглировать технологиями" получается только в статьях/книжках, я серьезно.

Антон
10.04.2018
19:35:28
Разве что у Эванса на компе

Ярослав
10.04.2018
19:35:32
тогда надо выбрасывать доктрин репы, потому что они имплиментят доктриновский интерфейс.
Жёстко просто не привязываться entity к orm, использовать адаптеры и мосты

Vladislav
10.04.2018
19:36:04
адаптеры и мосты займут оч дофига времени

Dmitriy
10.04.2018
19:36:19
ахаха, на заводе все писалось в 94 году, никто не думал тогда, что БД можно менять, а была лицуха Оракла. Ну и писали через Оракловые коннектора. Щас этот оракл мозги трахает так, что мама не горюй! Но никуда не денешься с подводной лодки. Половина исходников потеряна, а в другую половину я даже суваться не стану

Ярослав
10.04.2018
19:36:21
"жонглировать технологиями" получается только в статьях/книжках, я серьезно.
Нужно искать баланс, в этом и заключается наша работа - искать компромиссы

Google
Konstantin
10.04.2018
19:36:45
значит тебе надо поменять платформу на что то более быстродействующее

Антон
10.04.2018
19:36:47
Как эластикsearch потом заменить на что то другое? Не привязываясь к нему

Антон
10.04.2018
19:37:23
через адаптер жи
Как же все легко

Vladislav
10.04.2018
19:37:34
ну хотя с ластиком тут легче если все на интерфейсах

а вот доктрину как выпилить - хз

Ярослав
10.04.2018
19:37:58
Как эластикsearch потом заменить на что то другое? Не привязываясь к нему
Как раз недавно писал микросервис на джаве с использованием solr, выделил в один репозиторий работы с solr, а в другой elasticsearch

Vladislav
10.04.2018
19:38:02
вот юзаешь ты квери билдер, надо будет писать свой адаптер под квери билдер по гайду

все адаптеры поддерживать

Ярослав
10.04.2018
19:38:24
через адаптер жи
Если интерфейсы не совпадают , то конечно адаптер

Vladislav
10.04.2018
19:38:34
это занимает много времени и не стоит того я думаю

Dmitriy
10.04.2018
19:38:46
Inversion of Control - сила

Konstantin
10.04.2018
19:38:57
бесконечное время на разработку

Антон
10.04.2018
19:39:02
Vladislav
10.04.2018
19:39:07
бесконечное время на разработку
ну если оно такое есть то да

Sergey
10.04.2018
19:39:11
если какой-то query builder нужен, то далеко не уедешь

Антон
10.04.2018
19:39:13
Хуяк и в продакшн сила

Ярослав
10.04.2018
19:39:34
это занимает много времени и не стоит того я думаю
В том то и смысл, если есть шанс того, что понадобится изменить одну либу на другую , тогда выделяй интерфейс и оперируй им в доменном слое

Страница 835 из 1418